我有测试的经典结构,我有一个不同套件的测试套件,如DatabaseTests,UnitTests等.有时这些套件包含其他套件,如SlowDatabaseTests,FastDatabaseTests等.
我想要的是随机化测试的运行顺序,以便我确保它们不相互依赖.随机化应该在每个级别,如套件应该随机测试类顺序,测试类应该随机测试方法顺序.
如果可以在Eclipse中执行此操作,那将是最好的.
Mic*_*mlk 14
你有一个Sortable,但我看不出你会如何使用它.
您可以扩展BlockJUnit4ClassRunner并让computeTestMethods()返回super.computeTestMethods()的随机副本.然后使用@ RunWith将其设置为要使用的运行器.
例如
package com.stackoverflow.mlk;
import java.util.Collections;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.InitializationError;
public class RandomBlockJUnit4ClassRunner extends BlockJUnit4ClassRunner {
    public RandomBlockJUnit4ClassRunner(Class<?> klass)
            throws InitializationError {
        super(klass);
    }
    protected java.util.List<org.junit.runners.model.FrameworkMethod> computeTestMethods() {
        java.util.List<org.junit.runners.model.FrameworkMethod> methods = super.computeTestMethods();
        Collections.shuffle(methods);
        return methods;
    }
}
然后
@RunWith(com.stackoverflow.mlk.RandomBlockJUnit4ClassRunner.class)
public class RandomOrder {
    @Test
    public void one() {
    }
    @Test
    public void two() {
    }
    @Test
    public void three() {
    }
}
| 归档时间: | 
 | 
| 查看次数: | 8225 次 | 
| 最近记录: |