在我的自定义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测试的下面的目录。我没有成功地尝试过各种变化。有人可以帮忙吗?
答案 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类并运行它。
希望这有助于某人!马丁