在NetBeans的自由形式Java项目中,如何将单个文件目标添加到JUnit测试?

3

我保证,我已经阅读了:http://netbeans.org/kb/articles/freeform-config.html

我有一个Java自由格式项目,我想修改它,以在Netbeans 7.2中的上下文菜单中包含“测试单个文件”目标。

链接中介绍了创建一个名为“test.single”的操作(以覆盖Netbeans的“测试单个文件”命令),并在该操作创建中,必须指定一个ant目标和一个上下文对象,如下所示:

<context>
    <property>testclass</property>
    <folder>${current.dir}</folder>
    <pattern>\.java$</pattern>
    <format>java-name</format>
    <arity>
        <one-file-only/>
    </arity>
 </context>

所以概括一下,我已经做了以下几件事情:
在 ide-actions 块中的 project.xml 文件中创建了该操作:
<action name="test.single">                                     
  <target>test-single</target>

  <context>
      <property>testclass</property>
      <folder>${current.dir}</folder>
      <pattern>\.java$</pattern>
      <format>java-name</format>
      <arity>
          <one-file-only/>
      </arity>
  </context>
</action>

在上下文菜单块中添加了 ide-action。

<ide-action name="test.single"/>

将以下内容添加到自由格式项目的project.xml文件中,右键单击项目名称后会出现灰色的“test.single”条目。此外,在src/test目录中右键单击测试类会出现灰色的“Test Single File”条目。我已检查并验证了xml,一切似乎都没有问题。我可能做错了什么?谢谢!
1个回答

1

我曾经遇到过同样的问题,通过在nbproject/project.xml中克隆run.single操作并将其命名为test.single来解决了它:

<action name="test.single">
    <script>build.xml</script>
    <target>test-single</target>
    <context>
        <property>test.class</property>
        <folder>src/java</folder>
        <pattern>\.java$</pattern>
        <format>java-name</format>
        <arity>
            <one-file-only/>
        </arity>
    </context>
</action>

我也将属性更改为test.class,因为我们需要在项目的build.xml中运行适当的测试类。
在主要的build.xml文件中,我有一个名为test-single的目标。
<target name="test-single" description="Run individual Unit tests" depends="compile, compile-test" >  
    <junit
        printsummary="yes"
        errorProperty="test.failed"
        failureproperty="test.failed"
        haltonfailure="yes" 
        fork="yes"
        showoutput="yes">
        <formatter type="plain" usefile="false"/>
        <classpath>
            <pathelement location="${build.base.classes.dir}" />
            <pathelement location="${unit.test.classes.dir}" />
            <pathelement location="${junit.dir}" />
        </classpath>
        <test name="${test.class}Test" todir="${results}">
        </test>
    </junit>
    <fail message="Tests failed!" if="test.failed"/>
</target>

请注意,${test.class} 是指属性。但是当我保留它时,它会尝试运行被测试的类而不是 JUnit 测试类。由于这个测试类的名字总是以单词 "Test" 结尾并与被测试的类相同,因此我已将其命名为 ${test.class}Test

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接