gradle - Gradle 启动的 TestNG 测试在套件而不是类中按优先级运行
问题描述
TestNG 7.3.0(与 6.8.9 相同)Gradle 4.10.3
我为班级内的测试设置了唯一的优先级。我在一个包中有几个类。我还被迫在我知道的所有地方在一个线程中运行测试: maxParallelForks = 1
,<suite name="UI tests" thread-count="1" parallel="false">
当我右键单击 Intellij IDEA 中的包并运行测试时,它们按预期进行:所有测试都来自 A 类的优先级,然后所有测试都来自 B 类的优先级:
但是当我运行 gradle 任务(从 IDEA 中的 Gradle 菜单,与从命令行相同),甚至通过在 IDEA 中右键单击运行 testng xml 文件时,执行优先级为 1 的包(或整个项目)中的所有测试,然后所有优先级为 2 等 - 这对我来说是完全错误且不可预测的:
对我来说,它看起来像是一个 Gradle-TestNG 错误。有什么想法吗?
gradle 构建文件中的 TestNG 配置:
task uiTest(type: Test) {
group 'verification'
outputs.upToDateWhen { false }
testLogging.showStandardStreams = true
testLogging.exceptionFormat = 'full'
useTestNG() {
maxParallelForks = 1
outputDirectory = file("$buildDir/testng-output")
suites 'src/test/resources/testData/ui/testNG.xml'
listeners << 'ui.util.listener.ExceptionListener'
}
}
测试NG xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="UI tests" thread-count="1" parallel="false">
<listeners>
<listener class-name="ui.util.listener.ExceptionListener"/>
</listeners>
<test name="UI tests">
<packages>
<package name="ui.rock_suites.priorityTest.*"/>
</packages>
</test>
</suite>
测试类样本:
package ui.rock_suites.priorityTest
import org.testng.annotations.Test
class A {
@Test(priority = 1)
void ATest1() {
sleep(100)
}
@Test(priority = 2)
void ATest2() {
sleep(100)
}
@Test(priority = 3)
void ATest3() {
sleep(100)
}
@Test(priority = 4)
void ATest4() {
sleep(100)
}
}
package ui.rock_suites.priorityTest
import org.testng.annotations.Test
class B {
@Test(priority = 1)
void BTest1() {
sleep(100)
}
@Test(priority = 2)
void BTest2() {
sleep(100)
}
@Test(priority = 3)
void BTest3() {
sleep(100)
}
@Test(priority = 4)
void BTest4() {
sleep(100)
}
}
解决方案
我在测试中看到了类似的问题,我通过定义优先级来运行测试,但它们不再遵循优先级。寻求有关如何解决它的帮助。
以前的所有东西都可以与早期版本的 android studio(4.1.1) 和 gradle(7.0) 一起使用,但是在将我的 studio 和 gradle 升级到最新版本后我看到了这个问题
推荐阅读
- python - 如何在 Numba 中逐行遍历 3D 矩阵?
- c# - HOWTO:根据用例场景将不同类型的对象作为参数传递给方法
- php - 如何将 html 表单中的单选按钮值保存到高级自定义字段中?
- css - CSS Flex 自项目对齐
- fortran - (1) 处的数组规范在 mpif-sizeof.h 中有超过 7 个维度
- javascript - React & Typescript:“数字”类型上不存在属性“id”
- spring-boot - 为什么休眠在没有事务的情况下保存值?
- swiftui - Swift UI - 为 iPad 和 iPhone 设置视图
- flutter - 容器中的涟漪效应(墨水池),在 Flutter 中的堆栈中以边距定位
- python - Groupby 给出 keyerror