【问题标题】:testng run all test classes in one threadtestng 在一个线程中运行所有测试类
【发布时间】:2013-05-08 15:00:43
【问题描述】:

我有一个测试项目,它使用 TestNG 和 maven 运行。 TestNG 在多个线程中运行测试类,我不能接受的是,我想在一个线程中运行所有测试类。 我知道可以在一个线程中运行指定测试类中的所有测试方法,但是如何在一个线程中运行所有测试类中的所有测试方法?是否有任何简单的方法可以做到这一点,而不依赖于每个测试类?

我尝试过像这样配置 maven surefire 插件,但它不起作用。

<configuration>
  <threadCount>1</threadCount>
</configuration>

【问题讨论】:

    标签: java testng


    【解决方案1】:

    我对您的情况的理解可能有误。理想情况下,如果您拥有的不同测试不能并行运行,那么您肯定会遇到编写测试方式的问题。理想情况下,任何测试都不应该依赖于任何其他测试,并且它们应该能够并行运行。如果它们不能并行运行,那么您可能希望重构您的测试,以便没有任何测试依赖于任何其他测试。

    【讨论】:

    • 是的,这对于简单的单元测试是正确的。它适用于单元测试。但是我有单独的集成测试项目,这些测试使用通用数据库。由于意外的数据库数据,一个测试有时会破坏另一个测试。
    • 实际上我想说的也适用于集成测试。您的每个集成测试都应依赖非共享数据。
    • 视情况而定。例如,我想从表中检索第一条记录,并按任何字段排序,例如,获取一条修改日期最早的记录。这样的测试将检查排序是否有效。但是其他集成测试可以在并行线程中使用这个表,例如,清理它或插入新的东西。
    • 对于这些情况,您可以为不同的集成测试使用不同的表,因为无论如何表中的数据都是您将要测试的样本数据。
    【解决方案2】:

    TestNG 默认不并行运行,你必须在某处启用并行模式,可能在你的 testng.xml 的&lt;suite&gt; 标记中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多