我的每个Junit测试用例都有多个场景,并且必须运行ETL过程(需要20分钟)以在每个场景之间进行验证。假设我有一个包含4个Junit测试的类,格式为:
是否可以在所有测试方法上单独运行第一个场景,将会话保持在某个位置然后返回到类以运行第二个场景(如果可用)等等。我想知道使用Junit是否可行。我在几个地方搜索过,但我没有找到任何运气。
答案 0 :(得分:0)
没有。 JUnit FAQ说:“不保证测试方法调用的顺序......”另请参阅How to run test methods in spec order in JUnit4?
我理解的另一个障碍是JUnit为类中的每个方法实例化一个新的测试类实例。 (Here is the explanation why)您的每个场景都将在测试类的不同实例中运行。
你的问题不是很清楚;也许如果你提供了更多关于你想做什么的细节,你会得到一些建议。
答案 1 :(得分:0)
如果您正在使用数据库,那么您可以拥有四个数据库吗?
JUnit中没有任何特定的保存/恢复会话,但是,您可以查看categories仅在CI服务器上运行特定测试。
答案 2 :(得分:0)
如果在运行时您可以判断某个场景是否适用/可用,您可以使用条件(重新)运行次数与场景一样多次:
@Before
public void seeIfScenarioIsApplicable() {
org.junit.Assume.assumeTrue( isScenarioIsApplicable( ... ) );
}
@Test
first (){ // do magic }
@Test
second (){ // do magic }
@Test
third (){ // do magic }
@Test
fourth (){ // do magic }
如果“isScenarioIsApplicable”返回false,则跳过测试方法。