java - Netbeans:如何更改用于识别 testSuites 的命名模式

标签 java netbeans junit

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

最佳答案

好吧,实际上,我在努力解决自己的问题时发现了这一点。 Vanilla NetBeans使用ant,所以这个问题实际上是一个ant问题。如果您查看项目的目录,我们会看到有 build.xml 文件。这是指示 ant 做什么的主要文件。如果我们查看该文件内部,我们会发现它的主要功能是简单地 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 文件中,我认为它需要粘贴在 指令上方,以便它具有优先权。 (也许不行,如果不起作用,也可以尝试下面的方法。)

现在,棘手的一点是,NetBeans 有一个自定义 junit 运行程序,即 标记。如果不进一步深入了解如何传递参数,我们并不确切知道如何向其添加参数,但对于您的情况,这很好,我们实际上不需要添加参数,我们只需编辑参数即可使其工作。

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

可能可以为您做到。现在,它将匹配任何包含单词 test 的内容,而不仅仅是以单词 test 结尾的内容。

关于java - Netbeans:如何更改用于识别 testSuites 的命名模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5840388/

相关文章:

css - 如何在 Netbeans 中手动触发 LESS/SASS 编译器

java - 是否可以模拟私有(private)方法的结果并同时获得声纳或 jacoco 的覆盖?

java - 获取 NestedServletException : Request processing failed; nested exception is java. lang.IllegalStateException:映射的处理程序方法不明确

java - Apache Camel - Json 到 POJO 自动数据类型转换?

java - 客户端已连接,但无法向服务器发送消息。[控制台聊天]

php - "Do not Access Superglobal $_REQUEST Array Directly."Netbeans 8.0 PHP

java - 无法在 Spring 3.2.8 和 junit 4.4 中 Autowiring 现场执行 Junit 测试

java - “mvn install”在尝试下载时不起作用并显示错误

java - 可编辑 JCombobox mouseclicked 事件不起作用

java - Netbeans 7.2.1。带有嵌入式 Derby 数据库的 Java 应用程序