Netbeans:如何改变用于识别testSuite的命名模式

时间:2011-04-30 07:44:38

标签: java netbeans junit

我有很多具有“测试”后缀的JUNIT TestSuite。 Eclipse识别静态suite()方法,并在包资源管理器中提供运行测试选项。但是,对于NetBeans而言,情况也是如此,它只提供了默认的“运行”上下文菜单选项。但是我注意到它确实识别出任何使用“TestSuite”作为后缀作为测试套件的类。我是NB 7.0的新手,我无法找到如何改变模式或者如何使NB以与Eclipse相同的方式工作。

2 个答案:

答案 0 :(得分:1)

好吧,实际上,我想到了,一边试图解决我自己的问题。 Vanilla NetBeans使用ant,所以这个问题实际上是一个蚂蚁问题。如果查看项目的目录,我们会看到有build.xml文件。这是指示ant做什么的主文件。如果我们查看文件内部,我们会发现它的主要功能是简单地< import /> nbproject / build-impl.xml文件。所以,我们需要的是这里。我们可以使用此文件覆盖默认实现的功能。

如果你深入了解build-impl.xml文件,你会看到junit部分。寻找这一部分:

<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
    <j2seproject3:junit testincludes="**/*Test.java"/>
</target>

这是实际运行测试的部分,它位于xml的一小块中,这正是我们所需要的,因为我们只是试图覆盖一小部分。希望显而易见的是,您可以看到我们只匹配(递归)与模式“* Test.java”匹配的文件名。因此,在您的情况下,您将编辑(或添加)模式“TestSuite.java”。不要将此行添加到该文件中,但它可能会被清除,因为这是一个自动生成的文件。相反,将整个位复制到实际的build.xml文件,我认为它需要粘贴在&lt; import /&gt;之上。指令因此它将优先。 (也许不是,如果不起作用,请在下面尝试。)

现在,这是一个棘手的问题,NetBeans有一个自定义junit运行器,&lt; j2seproject3:junit /&gt;标签。如果不进一步深入了解如何传递参数,我们就不知道如何添加参数,但对于你的情况,这很好,我们真的不需要添加一,我们可以通过编辑它来使其工作。

<target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run">
    <j2seproject3:junit testincludes="**/*Test*.java"/>
</target>

这应该可能为你做。现在它将匹配任何包含单词test的内容,而不仅仅是结束的单词test。

答案 1 :(得分:0)

如果您正在使用ant项目,则需要进入项目目录中的ant文件,并找到定位测试的ant命令。上次我检查(几年前),它正在寻找的文件名模式是硬编码的。