Java 这可以使用JUnit吗?

Java 这可以使用JUnit吗?,java,junit,Java,Junit,我的每个Junit测试用例都将有多个场景,必须在每个场景之间运行一个ETL过程(需要20分钟)进行验证。假设我有一个包含4个Junit测试的类,其格式如下: 第一个测试-一个场景 第二个测试-两个场景 第三个测试-三个场景 第四个测试-四个场景 是否可以在所有测试方法上单独运行第一个场景,将会话保留在某个位置,然后返回到类以运行第二个场景(如果可用),依此类推。我只是想知道使用Junit是否可以实现这一点。我找了几个地方,没有找到任何运气 否。报告中说,“不能保证测试方法调用的顺序……”另请

我的每个Junit测试用例都将有多个场景,必须在每个场景之间运行一个ETL过程(需要20分钟)进行验证。假设我有一个包含4个Junit测试的类,其格式如下:

  • 第一个测试-一个场景
  • 第二个测试-两个场景
  • 第三个测试-三个场景
  • 第四个测试-四个场景
是否可以在所有测试方法上单独运行第一个场景,将会话保留在某个位置,然后返回到类以运行第二个场景(如果可用),依此类推。我只是想知道使用Junit是否可以实现这一点。我找了几个地方,没有找到任何运气

否。报告中说,“不能保证测试方法调用的顺序……”另请参见

据我所知,您的计划的另一个障碍是JUnit为类中的每个方法实例化了测试类的新实例。()每个场景将在测试类的不同实例中运行


你的问题不是很清楚;如果你提供更多关于你要做的事情的细节,你可能会得到一些建议。

如果你使用的是一个数据库,你能有四个数据库吗


JUnit中没有任何关于保存/还原会话的特定内容,但是,您可以查看以仅在CI服务器上运行特定的测试。

如果在运行时您可以判断某个场景是否适用/可用,则可以使用条件(重新)运行,次数与存在的场景相同:

@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,则跳过测试方法。

我不清楚您要求的是什么,您是否希望对所有四个场景执行第一个测试,然后对三个场景执行第二个测试,对两个场景执行第三个测试,对一个场景执行最后一个测试?@Paul-ETL代表“提取、转换、加载”,这是一个用于在系统之间迁移数据或接口的过程。你的问题很模糊。你能放一些伪代码吗?