【发布时间】:2016-03-15 10:17:23
【问题描述】:
我目前正在努力解决一个非常棘手的问题:我正在处理一个包含大约 8 千个单元测试的项目(在相当强大的机器上执行需要 15 分钟)并且当前失败的测试不会在他们或自己运行时失败(或与其他失败的测试一起运行时),所以我猜有一些测试通过但留下了一些混乱。
我目前正在尝试使用 gradle 使用特定包中的测试运行这些测试:
test {
filter {
includeTestsMatching 'some.package.*'
includeTestsMatching '*Test1'
includeTestsMatching '*Test2'
}
}
但是有些事情我不知道如何控制,例如测试类的执行顺序(如果有人知道如何更改顺序也会对我有所帮助)。
也许有人已经知道找到影响其他测试的测试的一些不错的过程?
【问题讨论】:
-
一个单元测试不应该影响另一个单元测试的功能或结果
-
@Stultuske ofcourse :) 但我无法修复它,如果我找不到它:/
-
使用bisection method,恐怕。如果整个测试总是失败,那么测试执行顺序可能每次都相同。或者,如果您可以跟踪测试开始失败的时间点,这可能是解决此问题的关键。
-
重点是...我如何确定订单保持不变?也许测试过滤器会影响顺序,因为到目前为止我无法在较小的样本上重现问题......
-
“我怎样才能确保订单保持不变”......基本上,你不能。