如何组织jUnit测试分别涵盖包和整个程序?

时间:2011-06-08 22:53:47

标签: java junit package

这个问题与您的经验和行业最佳实践有关。 请评论我做了什么,看看是否有所作为。让我知道你如何处理同样的问题

当我写测试时,我通常会一次关注包装。 src中的每个类都有自己的测试类。生活很好。对于给定的包,我想出了一个负责运行包中所有测试的类。例如(A.java),如下所示:

@RunWith(Suite.class)
@Suite.SuiteClasses( { One.class, Two.class, Three.class })
public class _A {

}

关注1:这引入了一个额外的类,用于运行该包的所有测试。

关注2:我倾向于在该课程之前加上一个下划线(以确保它显示在最重要的位置.Norederstore(我被告知),是一种不好的品味......

问题:创建一个单独的测试类来测试给定的包是否常见?

如上所示的模式对我拥有的每个包重复。对于我在/ test下的每个包,我有一个_Package {x} Tests.java

此外,在/ test下的根目录下,我有一个包含所有包测试的所有测试类的母亲

/test
    _ApplicationTests.class

@RunWith(Suite.class)
@Suite.SuiteClasses( { _A.class, _B.class, _C.class })
public class _ApplicationTests {

}

关注1:我真的宁愿避免默认包,但与此同时,我非常希望看到“首次测试显示”成为主测试文件

关注2:再次(我必须在某处阅读此内容).MasterTests类以下划线开头(为了保持一致性

你们怎么处理这个?我所描述的是一种可接受的方法吗?

对于我(个人而言),我非常擅长选择分别运行“所有测试”和“所有包测试”。

谢谢,请告诉我。

1 个答案:

答案 0 :(得分:2)

如果您使用Eclipse,则可以右键单击测试包并在其中运行所有测试。

如果你正在使用maven和surefire / failsafe,你可以使用-Dtest=com.package.*指定包(它比Eclipse更强大,因为你可以从嵌套包层次结构的顶部开始)。 Ant可能有类似的选择。

这两种方法都意味着您不需要自定义的@Suite类。