【问题标题】:gradle test task execution order of testsgradle test 任务执行顺序
【发布时间】:2015-01-28 05:53:31
【问题描述】:

当我使用命令行运行我的 testng 测试并在 testng.xml 文件中定义测试时,它们会按照 testng.xml 中指定的顺序运行

<suite name="WorkDepot Tests">
        <test name="Submit work-result test">
          <classes>
                <class name="workdepot.test.SubmitWorkTest"/>
                <class name="workdepot.test.WorkResultTest"/>
                <class name="workdepot.test.SubmitWorkTest"/>
                <class name="workdepot.test.WorkErrorTest"/>
                <class name="workdepot.test.SubmitWorkTest"/>
                <class name="workdepot.test.MultipleHasTest"/>
                <class name="workdepot.test.WorkResultTest"/>
                <class name="workdepot.test.CallbackTest"/>
                <class name="workdepot.test.NegCallBackTest"/>
                <class name="workdepot.test.NegSubmitWork"/>
                <class name="workdepot.test.NegGetWork"/>
                <class name="workdepot.test.NegHasWork"/>
                <class name="workdepot.test.NegSubmitResult"/>
                <class name="workdepot.test.NegSubmitError"/>
                <class name="workdepot.test.NegReadResult"/>
                <class name="workdepot.test.NegMultipleHas"/>
          </classes>
        </test>
</suite>

现在我想运行那些使用 gradle Test 任务类型的任务类型,我也使用 include 模式。但是执行顺序现在改变了(任意)。

task integTest(type: Test){
    useTestNG()
    testClassDir = file("build/classes/integTest")

    include "workdepot/test/SubmitWorkTest*"
    include "workdepot/test/WorkResultTest*"
    include "workdepot/test/SubmitWorkTest*"
    include "workdepot/test/WorkErrorTest*"
    include "workdepot/test/SubmitWorkTest*"
    include "workdepot/test/MultipleHasTest*"
    include "workdepot/test/WorkResultTest*"
    include "workdepot/test/CallbackTest*"
    include "workdepot/test/NegCallBackTest*"
    include "workdepot/test/NegSubmitWork*"
    include "workdepot/test/NegGetWork*"
    include "workdepot/test/NegHasWork*"
    include "workdepot/test/NegSubmitResult*"
    include "workdepot/test/NegSubmitError*"
    include "workdepot/test/NegReadResult*"
    include "workdepot/test/NegMultipleHas*"

}

如何确保测试按照 testng.xml 中的顺序运行而不更改测试代码(即在测试之间添加依赖项)

【问题讨论】:

    标签: gradle testng


    【解决方案1】:

    JUnitTestNG 都无法从 gradle 级别进行控制。正如您提到的测试源可以修改。对于JUnit,可以定义一个测试套件来控制测试执行顺序。如果 TestNG 有它相当于这样的测试套件,它可能是要走的路。

    【讨论】:

      【解决方案2】:

      默认情况下,TestNG 将按照它们在 XML 文件中的顺序运行您的测试。否则 gradle test 不保证任何顺序,

      您可以在方法运行之前拦截它们,但在这种情况下没有用

      【讨论】:

        猜你喜欢
        • 2018-12-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-09
        • 1970-01-01
        相关资源
        最近更新 更多