Run all JUnit tests indepentently in Eclipse, reloading Spring context each time

时间秒杀一切 提交于 2019-12-18 09:27:41

问题


Goal: Find a way in Eclipse to execute all the tests in a JUnit class which reloads the Spring context before each test, instead of just once.

Scenario: I inherited DAO test suite that uses an HSQL in-memory database which gets initialized with some sample data on context load. While running the tests, I noticed if the whole class is executed, all the tests pass. But specific test methods fail when executed individually. Clearly, the tests are not independent and early tests are altering the database state and not cleaning up after themselves, which later tests are depending on to pass. I want to identify which tests are dependent and will fail when run by themselves, without having to manually execute each one or modify the code.


回答1:


You can use @DirtiesContext in your test class:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { MyConf.class })
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
public void MyTestClass {

This will reload the context after each test method.



来源:https://stackoverflow.com/questions/24854527/run-all-junit-tests-indepentently-in-eclipse-reloading-spring-context-each-time

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!