Java testng在一个线程中运行所有测试类

Java testng在一个线程中运行所有测试类,java,testng,Java,Testng,我有一个带有测试的项目,它使用TestNG和maven运行。TestNG在几个线程中运行测试类,这是我不能接受的,我希望在一个线程中运行所有测试类。 我知道可以在一个线程中运行指定测试类中的所有测试方法,但是如何在一个线程中运行所有测试类中的所有测试方法呢?有没有一种简单的方法可以做到这一点,而不必依赖于前一个测试类 我尝试过像那样配置maven surefire插件,但它不起作用 1. 我对你的情况的理解可能是错误的。理想情况下,如果您的不同测试不能并行运行,那么您肯定会在编写测试的方式上遇

我有一个带有测试的项目,它使用TestNG和maven运行。TestNG在几个线程中运行测试类,这是我不能接受的,我希望在一个线程中运行所有测试类。 我知道可以在一个线程中运行指定测试类中的所有测试方法,但是如何在一个线程中运行所有测试类中的所有测试方法呢?有没有一种简单的方法可以做到这一点,而不必依赖于前一个测试类

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


1.

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

TestNG默认情况下不并行运行,您必须在某处启用并行模式,可能在TestNG.xml的
标记中。

是的,这对于简单的单元测试是正确的。它对单元测试也很有效。但是我有单独的集成测试项目,这些测试使用公共数据库。一个测试有时会因为意外的数据库数据而中断另一个测试。实际上,我想说的对集成测试也是正确的。您的每个集成测试都应该依赖于非共享数据。这取决于具体情况。例如,我想从表中检索按任何字段排序的第一条记录,例如,获取一条修改日期最早的记录。此类测试将检查分拣是否有效。但是其他集成测试可以在并行线程中使用此表,例如,清理它或插入新的内容。对于这些情况,您可以为不同的集成测试使用不同的表,因为表中的数据将是您将要测试的样本数据。