来自 LeanFT 项目的 Jar 文件 - Class 不可接受
Jar file from LeanFT project - Class not acceptable
我有一些基于 TestNG
的 LeanFT
测试用例并尝试生成 jar
文件。我使用 IntelliJ IDEA
在 File -> Project Structure -> Project Settings -> Artifacts -> Jar -> From modules with dependencies
下设置工件的详细信息。我 select classname,但是报错,那是不可接受的。
更新 2018.05.03.
我在新 class 中创建了 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();
}
}
看来您在测试项目(使用 LeanFT TestNG 模板)、java 应用程序、谁知道还有什么应用程序之间有某种组合。
如果您有 main
方法但仍想触发 TestNG 测试,则需要使用 TestNG class。例如
TestNG testNG = new TestNG();
testNG.setTestClasses(WebTestFactory.class);
testNG.run();
您可以在 official docs or in this SO thread
中阅读有关此方法的更多信息
如果您没有 main
class,您应该创建一个。 (.jar
文件怎么知道入口点是什么?)。
总而言之,这个错误表明项目类型和项目结构(内容)之间存在冲突
根据您最近的评论:您能告诉我 example/pattern,将 main() 方法放在哪里吗?
- 您可以创建一个新的 class 文件,甚至可以使用
LeanFTest
创建 main
方法。
无论您在 main 方法中做什么,都会驱动您的整个应用程序。
在您的特定情况下(执行 TestNG 测试),您需要执行以下操作,在您的主要方法中:
创建测试ng实例(TestNG testNG = new TestNG();
)
使用此实例准备测试套件
(再次)指向上面的 SO 线程,这意味着:
String xmlFileName = "testng.xml";
List<XmlSuite> suite = (List <XmlSuite>)(new Parser(xmlFileName).parse());
testNG.setXmlSuites(suite);
运行套房
testNG.run();
之后,当您创建工件时,指向具有主要方法的 class 并双击 .jar
(或从命令行执行)应该启动测试套件.
我有一些基于 TestNG
的 LeanFT
测试用例并尝试生成 jar
文件。我使用 IntelliJ IDEA
在 File -> Project Structure -> Project Settings -> Artifacts -> Jar -> From modules with dependencies
下设置工件的详细信息。我 select classname,但是报错,那是不可接受的。
更新 2018.05.03. 我在新 class 中创建了 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();
}
}
看来您在测试项目(使用 LeanFT TestNG 模板)、java 应用程序、谁知道还有什么应用程序之间有某种组合。
如果您有 main
方法但仍想触发 TestNG 测试,则需要使用 TestNG class。例如
TestNG testNG = new TestNG();
testNG.setTestClasses(WebTestFactory.class);
testNG.run();
您可以在 official docs or in this SO thread
中阅读有关此方法的更多信息如果您没有 main
class,您应该创建一个。 (.jar
文件怎么知道入口点是什么?)。
总而言之,这个错误表明项目类型和项目结构(内容)之间存在冲突
根据您最近的评论:您能告诉我 example/pattern,将 main() 方法放在哪里吗?
- 您可以创建一个新的 class 文件,甚至可以使用
LeanFTest
创建
main
方法。无论您在 main 方法中做什么,都会驱动您的整个应用程序。 在您的特定情况下(执行 TestNG 测试),您需要执行以下操作,在您的主要方法中:
创建测试ng实例(
TestNG testNG = new TestNG();
)使用此实例准备测试套件
(再次)指向上面的 SO 线程,这意味着:
String xmlFileName = "testng.xml"; List<XmlSuite> suite = (List <XmlSuite>)(new Parser(xmlFileName).parse()); testNG.setXmlSuites(suite);
运行套房
testNG.run();
之后,当您创建工件时,指向具有主要方法的 class 并双击 .jar
(或从命令行执行)应该启动测试套件.