【问题标题】:How does maven determine the order of tests that will run? [duplicate]maven 如何确定将要运行的测试的顺序? [复制]
【发布时间】:2015-09-08 13:12:20
【问题描述】:

我目前正试图弄清楚为什么某些集成测试只在 Linux 机器上失败(并且知道影响测试结果的测试顺序是一件坏事)。

当我在 Windows 机器上运行 maven 目标时,测试类的顺序在运行之间和两台不同的机器上几乎得到了保留。

当我在 Linux 机器上运行 maven 目标时,测试类的顺序在 Linux 机器之间是不同的(没有跨版本检查)。

maven 如何确定将运行的测试类的顺序?

编辑:我不是试图控制测试的顺序,而是试图确定 maven 如何决定运行这些测试的顺序,How do I control the order of execution of tests in Maven? 中没有回答

【问题讨论】:

  • 这不是重复的,除非我弄错了。我不是要控制测试的顺序,而是要问 maven 如何决定什么顺序。
  • 另一个问题通过说它可以设置为按字母顺序来解决。这个问题询问默认排序是什么。我看到在 Windows 上,所有开发人员的顺序总是相同的,但在 Linux 上,通常不同。

标签: java linux windows maven integration-testing


【解决方案1】:

无法保证测试运行的顺序。

应该不需要按顺序进行测试。如果您需要按顺序运行测试,则说明您没有编写正确的测试。

您应该能够随时自行运行任何测试。这样做的原因是,例如,如果您在一个测试中创建一个对象并在另一个测试中使用它,如果创建测试失败,则下一个测试将默认失败。

【讨论】:

  • 同意。不幸的是,我正在尝试修复可能不是这种情况的构建。
  • 如果您需要命令,您可以做的一件事是:在每次测试之前,重置状态。然后在您的测试调用中所有的先决条件测试,如方法,不幸的是,您将不得不手动处理任何异常。然后执行测试代码。如果您使用的是 junit 4.*,您可以查看 @Before 注释以重置状态(它在每次测试之前运行)
猜你喜欢
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 2012-08-18
  • 2022-06-13
  • 2019-05-04
  • 1970-01-01
  • 2015-08-19
  • 2016-07-17
相关资源
最近更新 更多