使用JUnit运行大量集成测试的最佳方法是什么?

我粗略地发现下面的代码可以运行所有测试……但是它有一个巨大的缺陷。在这些类中的每个类中,直到它们全部运行后才调用tearDown()方法。

public class RunIntegrationTests extends TestSuite {
   public RunIntegrationTests(){
   }

   public static void main (String[] args){
      TestRunner.run(testSuite());
   }

   public static Test testSuite(){

      TestSuite result = new TestSuite();

      result.addTest(new TestSuite(AgreementIntegrationTest.class));
      result.addTest(new TestSuite(InterestedPartyIntegrationTest.class));
      result.addTest(new TestSuite(WorkIntegrationTest.class));
      // further tests omitted for readability

      return result;
   }
}


正在运行的类将连接到数据库,加载对象,并将其显示在JFrame中。我覆盖了setVisible方法以启用测试。在我们的构建机器上,运行上面的代码时,java vm内存不足,因为它必须从数据库中加载的对象非常大。如果在每个类完成之后调用tearDown()方法,它将解决内存问题。

有更好的方法来运行它们吗?我必须顺便使用JUnit 3.8.2-我们仍然在Java 1.4上:(

最佳答案

不知道这是否是问题,但是根据JUnit Primer,您应该直接添加测试,而不是使用TestSuite:

  result.addTest(new AgreementIntegrationTest()));
  result.addTest(new InterestedPartyIntegrationTest()));
  result.addTest(new WorkIntegrationTest()));

10-08 06:48