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

如何参考TestNG从POM.XML运行特定的Java类

梁宪
2023-03-14

我有Maven TestNG Selenium Java的配置

我想从POM运行特定的Java类。XMl文件,

试:

     <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.6.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>java</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>demo.java</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

就我提到的,有共同的解决方案,但它不起作用。它没有运行任何东西,Build是成功的,

请注意,在使用TestNG时,在任何Java类中都没有公共静态空main(String args[])。

如果能解释一下就太好了

到目前为止,我已经尝试过:

从 Maven 开始,我如何运行一个位于 src/test/java 下的类?

如何从maven命令行执行java类文件

如何使用Maven执行程序?

Maven运行项目


共有3个答案

鲜于高明
2023-03-14

我记得,有一次我经历了这一切,它成功了。

    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.0</version>
            <configuration>
                <includes>
                    <include>demo.java</include>
                </includes>
            </configuration>
        </plugin>
    </plugins>

参考资料 : http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html

江光明
2023-03-14

因为我们正在使用Maven testng。在pom中。xml u可以使用maven surefire插件来运行testng.xml中提到的特定测试用例。pom中的变量TestCaseName。xml(多个测试用例,分开)。您可以在Testng中提到您的测试用例。

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.0</version>
                <configuration>                     
                    <suiteXmlFiles>
                        <suiteXmlFile>testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                    <properties>
                        <property>
                            <name>testnames</name>
                            <value>${TestCaseNames}</value>
                        </property>
                    </properties>
                </configuration>
            </plugin>

在TestNg中:

<test name="TestCase1">
        <classes>
            <class name="com.company.test">
                <methods>
                    <include name="testCase1" />
                </methods>
            </class>
        </classes>
    </test>
贝阳泽
2023-03-14
匿名用户

exec maven插件需要公共静态void main(String[]args)方法。

为了从< code>exec-maven-plugin运行TestNG类,您必须在< code>main方法中运行TestNG。尝试此解决方案:

public static void main(String[] args) {
    TestNG testSuite = new TestNG();
    testSuite.setTestClasses(new Class[] { MyClass.class }); //it would be probably name of the class in which `main` method is located
    testSuite.addListener(new MyListener()); //optional
    testSuite.setDefaultSuiteName("Test Suite");
    testSuite.setDefaultTestName("Test Name");
    testSuite.setOutputDirectory("/my/output/dir");
    testSuite.run();
}

 类似资料:
  • 我想使用maven命令从命令行运行一个特定的测试套件。我使用的是TestNg框架。 我的pom有以下配置设置: 在我正在运行的命令行上:

  • 问题内容: 我想使用TestNG以特定顺序运行Selenium WebDriver(Java)测试类。 例如。我有3个类,例如Test1,Test2和Test3。我要按Test2,Test1和Test3的顺序运行。是否可以不分组? 我尝试了以下方式,但是我以其自己的顺序(字母顺序)运行。 还有其他方法吗?如果没有分组,这可能吗? 问题答案: 只需使用 preserve-order =“ true”

  • 我有一个maven项目,有3个TestNG套件和4个测试类,我想在jenkins中运行一个特定的套件,我搜索了很多,但只找到了一个命令放在goal来指定特定的套件,但当我这样做时,它也会运行所有其他套件。我被困在这里很长时间了,请引导我完成这个过程。我还想知道是否有任何设置我可以这样做,如果我选择一个套件运行,我可以运行该套件的任何特定类。我已附上我的项目结构在这里的形象,任何输入将不胜感激。谢谢

  • 我有一个testng xml文件,它被设置为运行一个特定的类,该类的方法包含以下组标记或被分组为以下类型之一: 并行测试 顺序测试 烟雾测试 虽然我的一些测试被指定为并行或顺序测试,但一些测试可能包含一个额外的标签“冒烟测试”。在这个场景中,我希望能够只运行那些被归类为“烟雾测试”的组件。当我运行测试时,它要么找不到任何测试,要么只是运行所有分组为“sequential-test”的测试。我似乎不

  • 问题内容: 一般问题是: 使用语法时,可以将其转换为功能接口等类型吗? 如果不是,那么如何在Java 8中间接调用方法引用? 举例来说,假设我们想要一个as: 它可以用作: 在以上代码段中,一种选择是但非常严格。正如这个答案所提到的,在b75版本之前,有一个可用的并且可能很方便。 另一方面,任何可能以某种方式转换为的机会? __Java专家 注意事项 :请根据需要改进问题的标题。 问题答案: 我认