gpt4 book ai didi

java - JUnit 类别不适用于 TestCase?

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:22 24 4
gpt4 key购买 nike

我发现了一件奇怪的事情,我很想知道为什么会发生这种情况。我正在使用 Maven Surefire 插件 (2.12.4) 和 Junit 4.11。当我想使用 @Category 注释来禁用某些测试时。奇怪的是,它只有在不扩展 TestCase 的测试中才能正常工作。对于不扩展 TestCase 的测试,我只能将注释放在要运行/禁用的测试方法上,但对于其他方法,它会禁用类中的所有测试。例子:命令行:mvn test -Dgroups=!testgroups.DisabledTests 仅针对第一个代码段运行测试 B:

import static org.junit.Assert.*;
public class DataTest {
@Test
public void testA(){...}

@Test @Category(testgroups.DisabledTests.class)
public void testB(){...}
}

对于类扩展 TestCase 的第二种情况,它将不运行任何测试。

public class DataTest extends TestCase {
@Test
public void testA(){...}

@Test @Category(testgroups.DisabledTests.class)
public void testB(){...}
}

为什么会发生这种情况?

最佳答案

deborah-digges 的评论中给出了解决方案:

The problem is that the second class is an extension of TestCase. Since this is JUnit 3 style, the annotation @Category didn't work. Annotating the class with @RunWith(JUnit4.class) should give you the same result in both cases

另一个作者是 Stefan Birkner :

JUnit 4 finds test by looking for the @Test annotation. You can remove the extends TestCase from your test class. Furthermore the name of the test method does no longer have to start with test. You're free to choose any method name you want.

关于java - JUnit 类别不适用于 TestCase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34635521/

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