是的,可以。我做过几次,在生产系统中运行诊断/烟雾测试。这是调用 JUnit 的代码的关键部分的片段:
JUnitCore junit = new JUnitCore();
Result result = junit.run(testClasses);
不要在应用程序中使用 JUnit.main
,它会在测试完成后调用,因此可能会停止 JVM 进程。System.exit
您可能希望捕获 JUnit 的“常规”控制台输出(点和简单报告)。这可以通过注册轻松完成(此类提供此简单报告)。TextListener
另请注意使用这种方法的几种并发症:
测试任何“测试框架”,包括如此小的框架,虽然非常简单,但可能会令人困惑。例如,如果要测试“测试框架”在其中一个测试失败时是否返回失败结果,您可以(应该?)创建始终失败的示例 JUnit 测试,并使用“测试框架”执行该测试。在这种情况下,失败的测试用例实际上是测试数据,不应该作为“正常”JUnit执行。有关此类测试的示例,您可以参考 JUnit 的内部测试用例。
如果你想准备/显示你的自定义报告,你应该注册自己的报告,因为JUnit返回的结果不包含(直接)关于通过的测试和测试方法的信息(它只是作为测试的一部分“硬编码”)。RunListener
Description