gpt4 book ai didi

java - 为什么 JUnit 测试在 Eclipse 中运行两次?

转载 作者:行者123 更新时间:2023-11-30 06:55:59 25 4
gpt4 key购买 nike

已经有人问过类似的问题here .

一个(未接受)answer状态:

the test class will always be started directly and then through the "link" in the suite. This is as expected.

有人可以解释这实际上意味着什么,以及是否可以防止测试运行两次。

当我使用 mvn test 从命令行运行测试时,它们只运行一次。

更新

我有一个定义如下的测试套件:

@RunWith(Suite.class)
@SuiteClasses({ TestCase1.class, TestCase2.class })
public class MyTestSuite
{
}

最佳答案

当您在 Eclipse 中的项目级别(或包级别)运行测试时,Eclipse 会在所有项目的源文件夹中搜索 JUnit 类(或选定的包)。这些都是带有 @Test 注释的类和所有带有 @RunWith 的类(可能还有更多)。然后对于所有这些类,它将它们作为测试运行。

由于这种行为,如果您有一个套件类引用同一项目中的测试类,这些测试将运行两次。如果您有另一个执行相同操作的套件,它们将运行 3 次,依此类推。要了解此行为,请尝试运行包含一个测试用例的套件两次,例如:

@RunWith(Suite.class)
@SuiteClasses({ TestCase1.class, TestCase1.class })
public class TestSuite {}

此处可接受的策略是为项目定义一个或多个套件并专门运行它们。不要在项目级别开始测试,而是只运行选定的套件。

就Maven而言,我怀疑它的默认配置只挑选了套件类而忽略了测试用例。如果配置不同,它的行为将与 Eclipse 相同。

关于java - 为什么 JUnit 测试在 Eclipse 中运行两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34720745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com