我想使用另一个Suite类使用JUnit 4启动一些Suite类。
我为一个软件包提供了以下测试套件:
package com.manuel.package1;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({ TestCase1.class, TestCase2.class,
TestCase3.class, TestCase4.class })
public class AllTests1 {
}
然后,我想使用类似以下的命令来运行我拥有的所有测试套件:
package com.manuel;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import com.manuel.package1;
import com.manuel.package2;
@RunWith(Suite.class)
@SuiteClasses({AllTests1.class, AllTests2.class})
public class RunAllTests {
}
如果可能的话,我宁愿使用注释(@RunWith(Suite.class),@ SuiteClasses({}))。
现在,我正在使用这种方法:
package com.manuel.package1;
import junit.framework.Test;
import junit.framework.TestSuite;
public class AllTests extends TestSuite {
public static Test suite() {
TestSuite suite = new TestSuite("Test for com.manuel.package1");
suite.addTestSuite(TestCase1.class);
suite.addTestSuite(TestCase2.class);
suite.addTestSuite(TestCase3.class);
suite.addTestSuite(TestCase4.class);
return suite;
}
}
对于运行测试套件:
package com.manuel;
import junit.framework.Test;
import junit.framework.TestSuite;
public class AllTests {
public static Test suite() {
TestSuite suite = new TestSuite("Run all the tests");
suite.addTest(com.manuel.package1.AllTests.suite());
suite.addTest(com.manuel.package2.AllTests.suite());
return suite;
}
}
预先谢谢你。
最佳答案
我回答了自己的问题,这是我遵循的方法:
@RunWith(Suite.class)
@SuiteClasses({ com.manuel.package1..AllTests.class,
com.manuel.package2.AllTests.class })
public class RunAllTests {
}
然后,在每个AllTests.class中
@RunWith(Suite.class)
@SuiteClasses({ TestCase1.class, TestCase2.class, TestCase3.class, TestCase4.class })
public class AllTests {
}
关于java - 使用另一个Suite类启动Suite类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19810125/