我有一个具有以下结构的测试套件
TestClass1
- testmethod1()
- testmethod2()
- testmethod3()
- testmethod4()
TestClass2
- testmethod11()
- testmethod22()
- testmethod33()
- testmethod44()
Run Code Online (Sandbox Code Playgroud)
在上面的结构中,我想执行testmethod4()作为最后一个.即)最后执行.有一个注释@FixMethodOrder,它执行一个方法而不是testclass.是否有任何机制来维护测试类和testmethod中的顺序.使用@FixMethodOrder,我可以通过重命名测试方法的名称来执行该方法,但我不能指示junit执行测试类作为最后一个(最后一个).
虽然再次引用@Andy -
你不应该关心测试订购.如果它很重要,那么测试之间就会存在相互依赖性,因此您需要测试行为+相互依赖性,而不仅仅是行为.当按任何顺序执行时,您的测试应该完全相同.
但如果需要这样做,你可以试试 Suite
@RunWith(Suite.class)
@Suite.SuiteClasses({
TestClass2.class,
TestClass1.class
})
public class JunitSuiteTest {
}
Run Code Online (Sandbox Code Playgroud)
您可以在哪里指定
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestClass1 {
@AfterClass
public void testMethod4() {
Run Code Online (Sandbox Code Playgroud)
然后注意将你的方法命名testMethod4为最终执行,或者你也可以使用Junit5中@AfterClass很快就会被替换的@AfterAll方法.
| 归档时间: |
|
| 查看次数: |
7642 次 |
| 最近记录: |