私はMavenを使用してSelenium Testngテストを実行していますが、実行可能なjarを作成しようとしているので、他のチームメンバーは最小限の設定でデスクトップから自動化スイートを実行できます。
そこで、実行可能なjarを作成するためのメインの「ランナー」メソッドを追加しました。
public class LaunchTests {
public static void main(String[] args) {
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
List<String> suites = new ArrayList();
suites.add("testng.xml");//path to xml..
testng.setTestSuites(suites);
testng.run();
}
}
私の推測では、POM.xmlに何かを追加する必要がありますか?
Eclipseからtestngテストを手動で実行する場合、またはmvn clean test(Surefireプラグイン)を使用する場合、テストは問題なく実行されます。しかし、Javaプログラムとして実行しようとすると、このエラーが発生します。
Exception in thread "main" org.testng.TestNGException:
Cannot find class in classpath: package.TestOne
at org.testng.xml.XmlClass.loadClass(XmlClass.Java:81)
at org.testng.xml.XmlClass.init(XmlClass.Java:73)
at org.testng.xml.XmlClass.<init>(XmlClass.Java:59)
at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.Java:548)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.testng.xml.XMLParser.parse(XMLParser.Java:38)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.Java:16)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.Java:9)
at org.testng.xml.Parser.parse(Parser.Java:172)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.Java:302)
at org.testng.TestNG.run(TestNG.Java:991)
at util.LaunchTests.main(LaunchTests.Java:17)
Testng.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite1" parallel="methods" thread-count="1">
<test name="Chrome Adviser Portal" allow-return-values="true"
thread-count="1">
<parameters>
<parameter name="browser" value="chrome" />
<parameter name="loginType" value="adviser" />
</parameters>
<classes>
<class name="adviserPortal.AdviserLogin" />
</classes>
</test>
</suite>
私はエンジニアの一人のためにこれを解決しました。彼は最新のtestngプラグインに更新していましたが、ビルドパスをtestng 6.11 jarファイルに更新することで問題を解決しました(以前は6.9.6でした)。