我有一个用于测试任务的Gradle配置:

task ClientTest(type : Test,dependsOn:'CopyAllToOneFolder'){
  copy {
    from 'build\\classes\\java\\main'
    into 'build\\classes\\java\\test'
  }
  useTestNG() {
    systemProperty 'headless', '1'
    suites '/src/test/resources/run/ClienPageTest.xml'
  }
}

我有一个XML用于TestNG套件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Client test" >
  <parameter name="browsername" value="chrome"/>
  <parameter name="headless" value="true"/>

  <listeners>
    <listener class-name="Listeners.ReporterListener"/>
    <listener class-name="Listeners.TestResultListener"/>
    <listener class-name="Listeners.TestSuiteListener"/>
  </listeners>

  <test name="RegistrationTest">
    <classes>
      <class name="org.client.RegistrationTest"></class>
    </classes>
  </test>
</suite>

当我从Inlelijj IDEA启动这些测试时,因为带有XML测试的TestNG已正确执行。但是,当我从Gradle启动测试时,它只会忽略它们。

怎么了

最佳答案

首先:测试任务中的copy是什么?为什么需要它们?您可以将它们全部删除还是至少将它们移至单独的任务。 Test任务只能进行测试!

我敢打赌,问题在于您在TestNG配置中的套件路径中:

suites '/src/test/resources/run/ClienPageTest.xml'

这是FS根目录中/src/文件夹的绝对路径。您可能想要的是:
suites '${projectDir}/src/test/resources/run/ClienPageTest.xml'

关于java - Gradle脚本忽略TestNG xml文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46999623/

10-12 22:10