gpt4 book ai didi

junit - 如何让我的 JUnit 测试以随机顺序运行?

转载 作者:行者123 更新时间:2023-12-03 11:42:08 26 4
gpt4 key购买 nike

我有用于测试的经典结构,我有不同套件的测试套件,如 DatabaseTests、UnitTests 等。有时这些套件包含其他套件,如 SlowDatabaseTests、FastDatabaseTests 等。

我想要的是随机化测试的运行顺序,所以我会确保它们不相互依赖。随机化应该在每个级别,就像套件应该打乱测试类的顺序,而测试类应该打乱测试方法的顺序。

如果可以在 Eclipse 中执行此操作,那将是最好的。

最佳答案

你确实有一个 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() {
}
}

关于junit - 如何让我的 JUnit 测试以随机顺序运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1444314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com