[英]How to install TestNG in NetBeans?
首先,我將依賴項和存儲庫添加到項目的maven pom.xml文件中:
<repositories>
<repository>
<id>jcenter</id>
<name>bintray</name>
<url>http://jcenter.bintray.com</url>
</repository>
</repositories>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.10</version>
<scope>test</scope>
</dependency>
並進行了NetBeans的“清理和構建”。 它下載了TestNG的東西,但是項目代碼仍然顯示找不到所需的類。 我可以看到C:\\ Users \\ Greg.m2 \\ repository \\ org \\ testng \\ testng \\ 6.10 \\ testng-6.10.jar存在。 如果打開該jar文件,則可以看到org \\ testng \\ Assert.class存在。 NetBeans為什么找不到它?
既然失敗了,我按照說明在這里設置TestNG Environment: https : //www.tutorialspoint.com/testng/testng_environment.htm
我的TESTING_HOME環境變量設置為
C:\Users\Greg\Projects\TestNG
我的CLASSPATH變量設置為
%CLASSPATH%;%TESTING_HOME%\testng-6.10.jar
是的,那個jar文件在那里。
我打開一個新的命令外殼並導航到
C:\Users\Greg\Projects\Enventive\en360\src
存在testng.xml
然后,我根據TestNG作者的文檔發出以下命令
java org.testng.TestNG testng.xml
但是得到
錯誤:找不到或加載主類org.testng.TestNG
在NetBeans 8.2中,我可以使用以下方法創建一個TestNG類:
File>New File...>Unit Tests>TestNG Test Case
它產生測試代碼,但是由於導入行中的錯誤,所有注釋都存在錯誤
import static org.testng.Assert.*;
哪個州
軟件包org.testng不存在
如果我嘗試通過下載Maven TestNG支持來在NetBeans中安裝TestNG插件,然后嘗試使用
Tools>Plugins>Downloaded>[navigate to downloaded org-netbeans-modules-testng-maven.nbm]>Install
它無法安裝,並顯示以下錯誤:
一些插件需要安裝插件Maven Embedder。 在版本> = 2.54中需要插件Maven Embedder,但僅找到2.52.1。 以下插件受到影響:Maven TestNG支持
在“可用插件”選項卡中或在網絡上搜索“ Maven Embedder”,一無所獲。
問題在於,作用域標記需要“編譯”,而不是“測試”。 作者的文檔專門說要使用“測試”。 整日花費我在這里找到解決方案:-(
Maven編譯錯誤[軟件包org.testng.annotations不存在]
盡管此問題適用於NetBeans,但不適用於命令行。 我設法通過在-cp(classpath)參數中指定實際的jar文件來使其運行,如下所示:
java -cp C:\Users\Greg\Projects\MyCompany\MyProject\src;c:\users\Greg\Projects\TestNG\testng-6.10.jar org.testng.TestNG testng.xml
其中第一個路徑是testng.xml的位置,第二個路徑是jar文件。 作者的文檔再次出現錯誤,因為它僅顯示包含testng.xml的文件夾的路徑。
盡管這確實找到了TestNG類和testng.xml,但是會發生異常:
線程“主”中的異常java.lang.NoClassDefFoundError:com / beust / jcommander / ParameterException
這似乎很奇怪,因為我的testng.xml不包含任何參數。 (也許應該嗎?)無論如何,在jar文件中查找確實存在com / beust,但沒有jcommander文件夾。
我下載了最新的testng-6.14.3.jar,並且該目錄中也沒有com / beust / jcommander。
這是我的testng.xml。 誰能看到問題?
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="E360 Test Site" verbose="10">
<test name="Test Analysis Results" preserve-order="true">
<classes>
<class name="test.java.core.EnProjectIT">
<methods>
<include name="testCreateTables" />
</methods>
</class>
</classes>
</test>
</suite>
為了克服這個問題,我在pom.xml中添加了以下依賴項:
<dependency>
<groupId>com.beust</groupId>
<artifactId>jcommander</artifactId>
<version>1.48</version>
</dependency>
然后像下面這樣將其添加到命令行的類路徑中:java -cp C:\\Users\\Greg\\Projects\\Enventive\\en360\\src;c:\\users\\Greg\\Projects\\TestNG\\testng-6.14.3.jar;c:\\users\\Greg\\Projects\\TestNG\\jcommander-1.72.jar org.testng.TestNG testng.xml
現在我得到以下錯誤:
在類路徑中找不到類:test.java.core.EnProjectIT
好的,因此我需要將已編譯的類位置而不是Java代碼位置添加到類路徑中。 現在看起來像這樣:
java -cp C:\\Users\\Greg\\Projects\\MyCompany\\MyProject\\src;C:\\Users\\Greg\\Projects\\MyCompany\\MyProject\\target\\classes;c:\\users\\Greg\\Projects\\TestNG\\testng-6.14.3.jar;c:\\users\\Greg\\Projects\\TestNG\\jcommander-1.72.jar org.testng.TestNG testng.xml
新錯誤是:
無法實例化類test.java.core.EnProjectIT原因:java.lang.NoClassDefFoundError:org / kohsuke / args4j / CmdLineException
似乎我只是在踢罐子。 也許我需要將整個.m2回購放入類路徑中?
好的,我找到了解決所有這些依賴性問題的聰明方法。 由於NetBeans可以正常構建項目,因此它必須具有一種將所有jar文件收集到其類路徑中的方法。 果然,我在一個位置找到了所有這些文件:C:\\ Users \\ Greg \\ Projects \\ MyCompany \\ MyProject \\ target \\ ProductSnapshot \\ WEB-INF \\ lib *
我將其添加到-cp中,現在看起來像這樣:
java -cp C:\Users\Greg\Projects\MyCompany\MyProject\src;C:\Users\Greg\Projects\MyCompany\MyProject\target\classes;C:\Users\Greg\Projects\MyCompany\MyProject\target\ProductSnapshot\WEB-INF\lib\* org.testng.TestNG testng.xml
好吧,我想我現在很接近。 下一個錯誤表明它找不到項目文件。 看來我需要從其他目錄運行該程序。
java.io.FileNotFoundException:C:\\ Users \\ Greg \\ Projects \\ MyCompany \\ MyProject \\ src \\ WEB-INF \\ EnDatabaseTest.properties(系統找不到指定的路徑)
它將WEB-INF \\ EnDatabaseTest.properties附加到啟動目錄,因此我將啟動目錄設為C:\\ Users \\ Greg \\ Projects \\ MyCompany \\ MyProduct \\ WebContent
我將testng.xml放在該目錄中,CD到該目錄,然后運行:
java -cp C:\Users\Greg\Projects\MyCompany\MyProject\WebContent;C:\Users\Greg\Projects\MyCompany\MyProject\target\classes;C:\Users\Greg\Projects\MyCompany\MyProject\target\En360-1.0.0\WEB-INF\lib\* org.testng.TestNG testng.xml
而且有效!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.