这个问题与您的经验和行业最佳实践有关。 请评论我做了什么,看看是否有所作为。让我知道你如何处理同样的问题
当我写测试时,我通常会一次关注包装。 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类以下划线开头(为了保持一致性)
你们怎么处理这个?我所描述的是一种可接受的方法吗?
对于我(个人而言),我非常擅长选择分别运行“所有测试”和“所有包测试”。
谢谢,请告诉我。
答案 0 :(得分:2)
如果您使用Eclipse,则可以右键单击测试包并在其中运行所有测试。
如果你正在使用maven和surefire / failsafe,你可以使用-Dtest=com.package.*
指定包(它比Eclipse更强大,因为你可以从嵌套包层次结构的顶部开始)。 Ant可能有类似的选择。
这两种方法都意味着您不需要自定义的@Suite类。