将junit测试单个文件目标添加到netbeans中的自由格式java项目

时间:2013-03-04 17:18:54

标签: netbeans ant

我保证,我读过:http://netbeans.org/kb/articles/freeform-config.html

我有一个java自由格式项目,我想修改它以在 Netbeans 7.2

中的上下文菜单中包含“测试单个文件”目标

包含的链接概述了创建名为“test.single”的操作(为了覆盖Netbeans的Test Single File命令),并且在该操作创建中,必须指定一个ant目标和一个上下文对象,如下所示: / p>

<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目录中的测试类会产生灰色的“测试单个文件”条目。

我已经检查并验证了xml,似乎一切都结束了。我能做错什么?

提前感谢!

1 个答案:

答案 0 :(得分: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中运行它来运行相应的测试类。

在main build.xml中,我有一个目标测试单:

<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。