簡體   English   中英

如何在NetBeans中安裝TestNG?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM