从eclipse复制的依赖注解,一运行测试脚本发现报错如下:
"F:\Program Files\Java\jdk1.7.0_17\bin\java" -ea -Didea.launcher.port=7533 "-Didea.launcher.bin.path=F:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\bin" -Dfile.encoding=UTF-8 -classpath "F:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\plugins\testng\lib\testng-plugin.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\charsets.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\deploy.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\javaws.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\jce.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\jfr.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\jfxrt.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\jsse.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\management-agent.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\plugin.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\resources.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\rt.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\access-bridge-64.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\dnsns.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\jaccess.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\localedata.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\sunec.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\sunjce_provider.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\sunmscapi.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\zipfs.jar;E:\workespace\demotest\target\classes;E:\repository\org\testng\testng\6.9.10\testng-6.9.10.jar;E:\repository\com\beust\jcommander\1.48\jcommander-1.48.jar;E:\repository\org\beanshell\bsh\2.0b4\bsh-2.0b4.jar;E:\repository\selenium-server-standalone\selenium-server-standalone\2.53\selenium-server-standalone-2.53.jar;F:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\plugins\testng\lib\testng.jar;F:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.testng.RemoteTestNGStarter -port 65416 -usedefaultlisteners false -socket65417 -temp F:\temp\idea_testng4.tmp
org.testng.TestNGException: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 44; 值为 "none" 的属性 "parallel" 必须具有列表 "false methods tests classes instances " 中的值。 at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:325) at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:90) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177) at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:125) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)Caused by: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 44; 值为 "none" 的属性 "parallel" 必须具有列表 "false methods tests classes instances " 中的值。 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.validateDTDattribute(XMLDTDValidator.java:1392) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.addDTDDefaultAttrsAndValidate(XMLDTDValidator.java:1311) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:1917) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:742) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3065) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:881) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302) at javax.xml.parsers.SAXParser.parse(SAXParser.java:195) at org.testng.xml.XMLParser.parse(XMLParser.java:39) 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:305) ... 9 morePicked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8Process finished with exit code 0
解决方案:
原因为6.9.10版本的testng,开始验证xml中的元素;而idea默认的testng.xml模板中parallel设置为none,因此报错。
所以解决方法:
1. testng 使用6.9.9
或者
2. testng使用6.9.10, 在testng.xml中parallel设置为false
效果如下: