代码之家  ›  专栏  ›  技术社区  ›  Craig P. Motlin

如何找到不属于任何套件的单元测试?

  •  3
  • Craig P. Motlin  · 技术社区  · 15 年前

    4 回复  |  直到 15 年前
        1
  •  1
  •   Nils Wloka    15 年前

    使用 UCDetector ,您应该能够从Eclipse中识别未使用的公共类(包括未使用的测试用例)。

        2
  •  1
  •   Alex B    15 年前

    最简单的方法是使用ant junit任务和测试的命名约定(例如matches*Test.java)。

    然后您可以告诉junit在项目中的*test.java中运行每个测试。下面是从 ant manual

    <junit printsummary="yes" haltonfailure="yes">
      <classpath>
        <pathelement location="${build.tests}"/>
        <pathelement path="${java.class.path}"/>
      </classpath>
    
      <formatter type="plain"/>
    
      <batchtest fork="yes" todir="${reports.tests}">
        <fileset dir="${src.tests}">
          <include name="**/*Test*.java"/>
          <exclude name="**/AllTests.java"/>
        </fileset>
      </batchtest>
    </junit>
    
        3
  •  1
  •   Yishai    15 年前

    我们在项目中所做的是遍历所有的类文件并查看扩展测试用例(您引用该文件,执行clazz=class.forName()类,然后执行Test.isAssignableFrom(clazz)来检查。

    它确实变得很混乱(例如,有时某些东西是不应该运行的基类,而那些基类必须被标记)。

    要知道它是否在套房里就更难了。我将使用我自己的套件Builder类,并要求使用它构建所有套件,并添加逻辑来记录生成器引用的所有现有类,然后将它们传递给检查器,并且检查器知道它们被解释。

    问题是JUnit4中的所有这些中断,使之成为即时遗留代码。

    最好的、最稳定的解决方案(直到JUnit解决了它的套件构建问题)是拥有一个开发区域性,该区域性可以使用命名转换(标准以Test结尾)命名它的所有测试并让Ant运行它们,或者在开发测试时只通过套件运行它们。

        4
  •  1
  •   Peter    15 年前