1

嗨——我想将 JUnit 测试自动扫描到套件中,作为我持续构建的一部分,所以我从 JUnit 的套件中派生了一个运行器,它可以在一个包中找到所有测试类。跑步者工作得很好,但结果显示低于预期。

我的测试支持包中有一个类,我的跑步者带有 @RunWith 注释。跑步者通过读取一个属性来获取被测试的包。设置属性并告诉 JUnit 运行带注释的类,然后执行该包中的所有测试。在 Ant 和 IntelliJ 中,套件的名称报告为具有 @RunWith 注释的类的名称。我的跑步者对 ParentRunner.getName() 有一个覆盖,它返回被测包的名称。我验证了字符串进入了跑步者的描述对象。我错过了什么?

环境:

  • JUnit:4.5
  • 蚂蚁:1.7.0
  • IntelliJ IDEA:8.1

感谢您提供的任何方向。

4

2 回答 2

1

这是因为 ANT 和 IntelliJ 使用他们自己的跑步者,所以他们是根据测试构建名称,而不是从你的跑步者那里获得名称。换句话说,运行者被委派是为了运行测试,而不是为了描述它。

于 2009-04-17T15:41:05.550 回答
1

就在几周前,我遇到了类似的问题,并因此创建了一个开源项目。

您可以通过 maven 包含它

<dependency>
   <groupId>com.github.cschoell</groupId>
   <artifactId>junit-dynamicsuite</artifactId>
   <version>0.2.0</version>
   <scope>test</scope>
</dependency>

或者从 github 页面下载它,您也可以在其中找到它的文档。

https://github.com/cschoell/Junit-DynamicSuite

包含一个 Junit 运行器,它允许扫描目录或类路径以进行单元测试,并通过实现一个简单的接口来过滤它们。

于 2011-07-15T15:22:54.867 回答