java—使用ApacheAnt+cobertura管理JUnit3/4混合测试集

bfhwhh0e  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(247)

我是一个相对较新的团队成员,致力于一个非常古老的遗留java服务(大约2005年)。我们针对这个服务的单元测试集的结构非常糟糕,因为大多数是具有类名(如“operationtests1”、“operationtests2”)的遗留junit3测试,并且没有配置的测试名。这些junit3测试类中的每一个都被手动添加到一个名为“alltests”的套件中,然后运行该套件并使用cobertura收集覆盖率数据。
由于这个测试套件的结构和大小(大约有2000个测试,其中一个复杂的类型层次结构从扩展junit3的testcase扩展而来),重构是不可能的。
在某个时候,我的团队开始迁移到JUnit4,在使用ApacheAnt运行我们的混合测试套件时遇到了一个问题,因为只有JUnit3测试被选中并运行。在我们的办公室里有一个变通办法 build.xml 我们创建一个包含 AllTests.class 然后手动包含每个JUnit4测试类。i、 e.结构如下:

<fileset id="coverage.tests" dir="${basedir}/tst">
  <include name="com/mycompany/AllTests.class"/>
  <!-- JUnit 4 Test Classes Below -->
  <include name="com/mycompany/some/nested/directory/structure/Junit4TestClass.class"/>
  <include name="com/mycompany/some/nested/directory/structure/AnotherJunit4TestClass.class"/>
  ...
</fileset>

引入这种模式的团队成员已经不在公司了,也没有留下任何关于它如何工作或为什么工作的文档。
手动包含这些JUnit4测试类是一个主要的、经常被遗忘的接触点,这导致我们在进行代码评审时出现了我们预期运行的失败单元测试。如果可能的话,我想消除或缓和这个接触点。
有没有一种方法来构造我们的文件集,这样我们就可以在文件集中包含任何和所有JUnit4测试类,而不必手动指定它们?或者在apacheant+cobertura中有没有其他方法来管理混合的junit3/4测试套件?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题