java - 如何找到影响其他测试执行的测试?

标签 java gradle junit

我目前正在努力解决一个相当棘手的问题:我正在开发一个项目,该项目有大约 8000 个单元测试(在相当强大的机器上执行需要 15 分钟),并且当前失败的测试在单独运行或自己运行时(或与其他失败的测试一起运行时)不会失败,所以我猜有一些测试通过了,但留下了一些困惑。

我目前正在尝试使用 gradle 通过特定包中的测试来运行这些测试:

test {
    filter {
        includeTestsMatching 'some.package.*'
        includeTestsMatching '*Test1'
        includeTestsMatching '*Test2'
    }
}

但是,有些事情我不知道如何控制,例如测试类的执行顺序(如果有人知道如何更改顺序,这也会对我有帮助)。

也许有人已经知道一些寻找影响其他测试的测试的好过程?

最佳答案

假设进行junit测试,那么:

  1. 定义 test suite指定测试类的顺序
  2. 确保您使用 junit 4.11 或更高版本来获取 deterministic method order
  3. 仅从 gradle 运行测试套件(或直接从您的 ide 运行)
  4. 通过编辑套件来调整顺序,直到重现问题

关于java - 如何找到影响其他测试执行的测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36008399/

相关文章:

java - 我如何让 XJC ant 任务使用多个绑定(bind)文件?

java - 如何为具有 topComponents 成员变量的类编写 junit 测试?

java - 单元测试后的回滚顺序

java - 尝试在java中检查另一个数字的倍数

java - 从eclipse自动部署文件到tomcat

android - 无法解析 react-native-gesture-handler 中的符号 android.support.v4.util.Pools

unit-testing - Gradle提示TestNG任务上的JUnit版本

inheritance - Junit 规则、测试用例和继承 : Do they work together?

java - while循环代码输出

java - == 运算符如果比较 Double 类型与相同值则返回 false