0

我有一些TestNG基于LeanFT测试用例并尝试生成jar文件。我用来IntelliJ IDEAFile -> Project Structure -> Project Settings -> Artifacts -> Jar -> From modules with dependencies. 我选择类名,但得到错误,这是不可接受的。

在此处输入图像描述

更新 2018.05.03。 我在一个新类中创建了 main 方法,但得到了相同的错误消息。

import org.testng.TestNG;
import org.testng.xml.Parser;
import org.testng.xml.XmlSuite;
import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import java.util.List;

public class LeanFTest {
    public void main() throws IOException, SAXException, ParserConfigurationException {
        TestNG testNG = new TestNG();

        String xmlFileName = "testng.xml";
        List<XmlSuite> suite = (List<XmlSuite>)(new Parser(xmlFileName).parse());
        testNG.setXmlSuites(suite);

        testNG.run();
    }
}
4

1 回答 1

1

似乎您在测试项目(使用 LeanFT TestNG 模板)、java 应用程序、who-knows-what-else 应用程序之间有某种组合。

如果你有一个main方法并且仍然想触发 TestNG 测试,你需要使用 TestNG 类。例如

TestNG testNG = new TestNG();
testNG.setTestClasses(WebTestFactory.class);
testNG.run();

您可以在官方文档此 SO 线程中阅读有关此方法的更多信息

如果你没有main类,你应该创建一个。(.jar文件怎么可能知道入口点是什么?)。

总而言之,这个错误表明项目类型和项目结构(内容)之间存在冲突


根据您最近的评论:您能告诉我示例/模式,将 main() 方法放在哪里吗?

  1. 您可以创建一个新的类文件,甚至使用LeanFTest
  2. 创建main方法。

    无论你在 main 方法中做什么,都会驱动你的整个应用程序。在您的特定情况下(执行 TestNG 测试),您需要在 main 方法中执行以下操作:

  3. 创建一个测试 ng 实例 ( TestNG testNG = new TestNG();)

  4. 使用此实例准备测试套件

    (再次)指向上面的 SO 线程,它的意思是:

    String xmlFileName = "testng.xml";
    List<XmlSuite> suite = (List <XmlSuite>)(new Parser(xmlFileName).parse());
    testNG.setXmlSuites(suite);
    
  5. 运行套件

    testNG.run();
    

之后,当您创建工件时,您指向具有 main 方法的类并双击.jar(或从命令行执行它)应该启动测试套件。

于 2018-05-03T08:28:42.503 回答