当前位置: 首页 > 知识库问答 >
问题:

在NetBeans8.1中运行单个TestNG测试

洪彬
2023-03-14
<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>

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

Includesfile D:\javamarket\ftharness\com.javamarket.testng.donothing.DoNothingTest not found.

Ftharness是我的项目的顶级目录,而src/TestNG是下面包含TestNG测试的目录。我尝试过各种改变都没有成功。有人能帮忙吗?

共有1个答案

娄弘
2023-03-14

如果这有助于任何想解决同样问题的人:我按以下方式解决了这个问题。不是很棒,但似乎很管用。

本质上,我使用TestNG的能力将测试定义作为XML文件使用。我按照以下思路创建了一个ant目标:

<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> 
<!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> 
 类似资料:
  • 我试图使用XML和TestNG运行一个测试套件,但是我总是同时使用Eclipse和命令行得到相同的消息: 该文件已正确读取,但测试似乎没有运行。 以下是我的testng.xml的内容: 这是我的目录结构在Eclipse中的样子: 此外,这也是我试图通过命令行运行测试套件的方式: 我尝试过通过eclipse清理项目,但似乎没有帮助。我也试过跑步: < code>mvn clean,但它也没有完成工作

  • 我试图用TestNG并行运行一个示例测试项目。但它是在一个线程中顺序执行的。我漏掉什么了吗? 谢了。

  • 共设5个测试班。每一个都使用@Factory(dataprovider=“data”)初始化。我想实现的是,每个测试类中的测试方法应该与dataprovider实例并行运行。此外,测试类应该并行运行。 如下所示。TestClass1应该并行运行dataprovider实例。因此,测试类TestClass1的所有方法将为dataprovider实例并行运行。 data-provider-thread

  • 我需要在一次测试中执行所有3个类,并满足以下要求: > 仅从Class1执行test1和test3。 仅从Class2执行test2。 执行Class3中的所有测试。 2类 3类 为此,我使用了以下testNg xml,但无论我是否包含该组,都将执行Class 1和Class 3中的所有测试。 如果我希望执行上述类文件,请建议TestNg xml文件的正确语法。

  • 请让我知道是否可以通过TestNG运行并行套件?