如何让JUnit4忽略一个基本测试类?

如何让JUnit4忽略一个基本测试类?,junit,junit4,Junit,Junit4,我有一个用于许多测试的基类,其中包含一些他们都需要的帮助器方法 它本身没有任何测试,但是JUnit(在eclipse中)正在调用它的测试运行程序,并抱怨没有测试方法 我怎样才能让它忽略这个类 我知道我可以添加一个dummyTest方法来解决这个问题,但是它也会出现在所有的子类中 建议?用于忽略注释。它也适用于课堂。 看看这个: @Ignore public class IgnoreMe { @Test public void test1() { .

我有一个用于许多测试的基类,其中包含一些他们都需要的帮助器方法

它本身没有任何测试,但是JUnit(在eclipse中)正在调用它的测试运行程序,并抱怨没有测试方法

我怎样才能让它忽略这个类

我知道我可以添加一个
dummyTest
方法来解决这个问题,但是它也会出现在所有的子类中


建议?

用于忽略注释。它也适用于课堂。 看看这个:

@Ignore public class IgnoreMe {
                        @Test public void test1() { ... }
                        @Test public void test2() { ... }
                }
此外,还可以对类进行注释 包含带有@Ignore的测试方法 并且没有一个包含测试将 被处决


资料来源:

作为说明,我始终建议您给出忽略的原因:

@Ignore("This test will prove bug #123 is fixed, once someone fixes it")

我希望在从ant运行测试时使用的junit xml报告格式化程序有一天会包括忽略的计数(以及原因)以及通过、失败和错误。

对junit 4来说,将类抽象化就足够了。如果不起作用,请仔细检查您使用的JUnit版本

这也传达了您的意图,即这只是测试的一个片段

它还防止JUnit将类中的测试计数为“忽略”(因此忽略测试的最终计数将是您所期望的)


或者,重命名该类。大多数运行程序使用类名来确定哪些类是测试类,哪些是帮助类。在具有默认设置的Maven中,您只需确保基类不以
Test
开头或结尾,也不以
TestCase
()

结尾。有三个选项:

  • 在JUnit4或JUnit5中,它足以使基类变得抽象。如果使用
    @Igonre
    属性,它将显示为忽略的测试(并将其添加到测试总数中)

  • 您可以使用
    @Ignore
    注释。此注释也适用于类。
    @Ignore
    测试注释用于忽略特定测试或测试组,以跳过生成失败

    @Ignore("Base class not yet ready") 
    class MyBaseClassTestCases {...}
    
  • 您可以更改测试类的名称,使其在测试名称的开头或结尾不包含单词test(区分大小写)或单词TestCase

  • JUnit5
    @Ignore
    在未来版本中不退出,如果您使用的是JUnit5,则可以使用来自JUnit Jupiter的

    import org.junit.jupiter.api.Disabled;
    
    您甚至可以将
    @Disabled
    与注释
    @Disabled(“此处的一些注释”)

    等级 注释该类,将禁用该类中的所有测试:

    @Disabled
    public class DemoTest { }
    

    方法

    它现在和现在都在运行,请看类似的问题:我刚刚知道,如果我们编写一个测试用例,那么在测试用例及其mandotory中应该至少有1@Test方法。另一方面,它会给我们初始化错误。这是真的吗?我同意这应该有效,所以+1。除了netbeans 6.2和jUnit 4.5之外,@ignore被列为仅对方法有效。查找它,Libary被称为4.5,但jar是junit4-1.jar。我接受了你的回答。谢谢。你能给我指出一个有效的引用,它说@Ignore只对JUnit4.5中的方法有效吗?我似乎找不到它……如果我想忽略除一个方法之外的所有方法的测试(而不是将@ignore放在每个方法之上)?@ignore和abstract的组合是excellet!您不需要忽略
    @Ignore
    。抽象就足够了(在我看来是最好的)对于JUnit4,
    Abstract
    应该就足够了。几年过去了,但是
    bug#123
    还没有修复……)最相关的答案是IMO.Abstract绝对是一种基本测试类的方式你也做得很好。和往常一样!
    @Disabled("some comment here")
    public class DemoTest { }
    
    @Disabled
    public void whenCaseThenResult() { }
    
    @Disabled("some comment here")
    public void whenCaseThenResult() { }