Mat*_*ski 39 java testing unit-testing junit4
在我的项目中,我必须在所有测试之前进行一些存储库设置.这是使用一些棘手的静态规则完成的.然而,我不知道在所有测试之后如何进行清理.我不想保留一些神奇的静态数字来指代所有测试方法的数量,我应该一直保持这些数字.
最受欢迎的方法是添加一些在所有测试之后调用的监听器.JUnit4中是否有任何接口?
编辑:这与@BeforeClass和@AfterClass无关,因为我必须知道最后一次是否调用了使用@AfterClass注释的方法.
Hel*_*eat 41
我正在使用JUnit 4.9.这会有帮助吗?:
import junit.framework.TestCase;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({First.class,Second.class,Third.class})
public class RunTestSuite extends TestCase {
@BeforeClass
public static void doYourOneTimeSetup() {
...
}
@AfterClass
public static void doYourOneTimeTeardown() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我非常积极(除非我误解了你的问题),我的解决方案正是你要找的.即所有测试运行后的一个拆卸方法.不需要监听器,JUnit有这个功能.谢谢.
Jur*_*lak 41
我建议使用org.junit.runner.notification.RunListener,例如:
public class TestListener extends RunListener {
@Override
public void testRunStarted(Description description) throws Exception {
// Called before any tests have been run.
}
@Override
public void testRunFinished(Result result) throws Exception {
// Called when all tests have finished
}
}
Run Code Online (Sandbox Code Playgroud)
在JUnit java doc中直接阅读.通过在插件配置中添加以下代码,即使使用Maven的surefire(单元测试)插件或故障安全插件(集成测试),您也可以使用它:
<properties>
<property>
<name>listener</name>
<value>com.innovatrics.afismq.it.TestListener</value>
</property>
</properties>
Run Code Online (Sandbox Code Playgroud)
Ale*_*der 11
刚遇到同样的问题.
我的解决方案
Runtime.getRuntime().addShutdownHook(new Thread(() -> do_your_global_cleanup())));Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
52294 次 |
| 最近记录: |