在NetBeans 8.1中运行单个TestNG测试



在我的自定义NetBeans项目中,我可以使用project.xml文件中的操作和build.xml中的Ant目标的组合在NetBeans UI中运行单个JUnit测试。在将我的测试移植到TestNG时,我也希望能够使用NetBeans用户界面运行单个TestNG测试。不幸的是,事实证明这比预期的要困难。这是我的蚂蚁目标:

<target name="testng-single" depends="compile-test" description="Run individual testng test" >
<testng failureproperty="test.failed" haltonfailure="yes" outputDir="src/testng/test-output" workingDir="." >
    <classpath refid="classpath.test" />
    <classpath refid="classpath.groovy" />
    <classpath location="${build}"/>
    <classpath location="src/testng"/>
    <classfileset dir="src/testng" includesfile="${test.class}" />
</testng>
<fail message="Tests failed!" if="test.failed"/>
</target>

这是我的行动:

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

我可以右键单击测试文件并选择测试文件,但当它运行时,它找不到类。我看到了以下错误:

Includesfile D:javamarketftharnesscom.javamarket.testng.donothing.DoNothingTest not found.

Fthaness是我项目的顶级目录,src/testng是它下面的目录,其中包含testng测试。我尝试过各种各样的改变,但都没有成功。有人能帮忙吗?

如果这能帮助任何想要解决相同问题的人:我按如下方式解决了这个问题。这不太好,但似乎有效。

从本质上讲,我使用TestNG的能力将测试定义作为XML文件使用。我沿着以下路线创建了一个蚂蚁目标:

<target name="testng-single" depends="compile-test" description="Run individual testng test" > 
<copy file="${tst.dir}/TestSingle.xml" overwrite="true" tofile="${tst.dir}/TempTestSingle.xml" > 
<filterset> 
<filter token="CLASS" value="${test.class}"/> 
</filterset> 
</copy> 
<testng failureproperty="test.failed" haltonfailure="yes" outputDir="src/testng/test-output" suitename="TestNG Suite" testname="TestNG Name" workingDir="." > 
<classpath refid="classpath.test" /> 
<classpath refid="classpath.groovy" /> 
<classpath location="${build}"/> 
<classpath location="src/testng"/> 
<xmlfileset dir="${tst.dir}" includes="TempTestSingle.xml" /> 
</testng> 
<fail message="Tests failed!" if="test.failed"/> 
</target> 

将以下内容添加到project.xml文件中:

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

并添加了一个TestSingle.xml文件,如下所示:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 
<suite name="Single Method Suite"> 
<test name="Single Method Test"> 
<classes> 
<class name="@CLASS@"> 
<methods> 
<include name=".*" /> 
</methods> 
</class> 
</classes> 
</test> 
</suite> 

有了这些更改,我现在可以右键单击我的一个TestNGjava类并运行它

希望这能帮助到别人!Martin

相关内容

  • 没有找到相关文章