在NetBeans 8.1中运行单个TestNG测试

时间:2016-07-18 14:29:50

标签: java netbeans ant testng

在我的自定义NetBeans项目中,我可以使用project.xml文件中的操作和build.xml中的Ant目标组合在NetBeans UI中运行单个JUnit测试。在将测试移植到TestNG时,我希望能够使用NetBeans UI运行单个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:\javamarket\ftharness\com.javamarket.testng.donothing.DoNothingTest not found.

Ftharness是我项目的顶级目录,src / testng是包含TestNG测试的下面的目录。我没有成功地尝试过各种变化。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

如果这有助于任何想要解决同样问题的人:我解决了这个问题如下。它不是很好,但似乎有效。

基本上,我使用TestNG将测试定义作为XML文件使用的能力。我沿着这些方向创建了一个蚂蚁目标:

for(Element article:articleElems)
{
     Element desc = article.select("div.description").first();
     Element post = desc.select("h1.list-post-title").first();
     Log.d(TAG,"post is "+post.toString()); // there NullPointerException throws
     ...
}

将以下内容添加到project.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> 

并添加了一个如下所示的TestSingle.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> 

通过这些更改,我现在可以右键单击我的一个TestNG java类并运行它。

希望这有助于某人!马丁