【问题标题】:Run a specific TestNG XML test suite with Gradle from command line?从命令行使用 Gradle 运行特定的 TestNG XML 测试套件?
【发布时间】:2019-04-15 18:32:43
【问题描述】:

我正在使用带有 TestNG 的 Gradle。我有这个 build.gradle:

useTestNG() {
        useDefaultListeners = true
        suites "src/test/resources/tests1.xml"
        suites "src/test/resources/tests2.xml"
   }
}

我怎样才能从命令行仅运行 tests1.xml?

【问题讨论】:

    标签: gradle testng


    【解决方案1】:

    您可以使用项目属性来添加/更改/...不同的套件。在您的示例中,您可能正在运行

    gradlew test
    

    同时运行两个套件。如果您在 build.gradle 中修改测试任务

    def suite1 = project.hasProperty("suite1")
    def suite2 = project.hasProperty("suite2")
    
    test {
        useTestNG() {
            dependsOn cleanTest
            useDefaultListeners = true
    
            if(suite1) {
                suites "src/test/resources/simpleSuite.xml"
            }
    
            if(suite2) {
                suites "src/test/resources/advancedSuite.xml"
            }
        }
    }
    

    你可以这样选择套件

    gradlew test -Psuite1
    gradlew test -Psuite2
    gradlew test -Psuite1 -Psuite2
    

    【讨论】:

      【解决方案2】:

      您可以使用默认值指定变量,比如suiteFile,并在 testNG 部分使用它。例如:

      ext{
      
          set suiteFile, default is 'testrun_config.xml'
          if (!project.hasProperty('suiteFile')) {
              suiteFile = 'testrun_config.xml'
          }
      }
      
      test {
          useTestNG() {
              dependsOn cleanTest
              useDefaultListeners = true
              suites "src/test/resources/"+suiteFile
      
          }
      } 
      

      参考qafgradle build file

      如果你想通过命令行

      gradlew test -PsuiteFile=test.xml
      

      【讨论】:

        【解决方案3】:

        在 build.gradle 中更新:

        test {
            useTestNG() {
                if (project.hasProperty('suite1')) { suites './src/test/suite1.xml' }
                if (project.hasProperty('suite2')) { suites './src/test/suite2.xml' }
            }
        }
        

        使用命令gradlew test -Psuite1 运行suite1 并同样更新suite2。

        【讨论】:

        • 如果我运行gradlew test -Psuite1 -Psuite2 会怎样?它会覆盖还是追加?
        猜你喜欢
        • 2015-11-25
        • 2015-08-27
        • 2015-10-23
        • 1970-01-01
        • 1970-01-01
        • 2018-08-05
        • 1970-01-01
        • 1970-01-01
        • 2018-08-16
        相关资源
        最近更新 更多