是否可以从我的Java应用程序内部运行JUnit测试?
是否有我可以使用的测试框架(例如JUnit.jar?),还是我必须自己查找测试文件,调用方法并跟踪异常?
我问的原因是我的应用程序需要大量的工作来启动启动(很多依赖项和配置等),而使用外部测试工具(例如JUnit Ant任务)将需要大量的工作来设置。
启动应用程序然后在应用程序内部运行我的测试更加容易。
是否有一个简单的测试框架可以从Java应用程序内部运行测试并输出结果,还是我不得不编写自己的框架?
最佳答案
是的你可以。我做了几次,在生产系统中运行诊断/烟雾测试。这是调用JUnit的代码的关键部分的代码片段:
JUnitCore junit = new JUnitCore();
Result result = junit.run(testClasses);
不要在应用程序内部使用
JUnit.main
,它会在测试完成后调用System.exit
,因此可能会停止JVM进程。您可能想要捕获JUnit的“常规”控制台输出(点和简单报告)。可以通过注册
TextListener
(此类提供此简单报告)来轻松完成此操作。还请注意使用这种方法的一些并发症:
RunListener
,因为JUnit返回的结果不(直接)包含有关已通过测试和测试方法的信息(作为测试的一部分,它只是“硬编码”的) Description
)。