XMLとTestNGを使用してテストスイートを実行しようとしていますが、Eclipseとコマンドラインの両方を使用すると常に同じメッセージが表示されます。
[TestNG] Running:
/Users/achavez/Programs/Selenium/Java/src/tests/resources/testng.xml
===============================================
TestingSuite1
Total tests run: 0, Failures: 0, Skips: 0
===============================================
ファイルは正しく読み取られますが、テストが実行されていないようです。
これらは私のtestng.xmlの内容です:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestingSuite1" verbose="1">
<test name="Test1" >
<packages>
<package name="tests"/>
</packages>
</test>
</suite>
そしてこれは私のディレクトリ構造がEclipseでどのように見えるかです:
また、これはコマンドラインからテストスイートを実行しようとしている方法でもあります。
Java -jar /Applications/Zend\ Studio.app/Contents/Resources/Java/plugins/org.testng.Eclipse_6.8.6.20141201_2240/lib/testng.jar src/tests/resources/testng.xml
私はEclipseを通じてプロジェクトをクリーンアップしようとしましたが、それは役に立たなかったようです。私も実行してみました:
mvn clean
しかし、それも仕事をしませんでした。
私を正しい方向に向ける助けがあれば大歓迎です!
インポートされたTestアノテーションのインポートを確認することもできます。
import org.testng.annotations.Test;
@Test
public myTest(){ ... }
例ではありません:
import org.junit.Test;
メソッドアクセス修飾子を機能させるためには、メソッドアクセス修飾子をプライベートからプライベートに変更する必要がありました。
明らかに、TestNGはテストスイート用のXMLファイルの生成に関して間違っています。
手紙の指示に従っても、私のテストは実行されていませんでした。これで終わりましたtestng.xml
ファイルと私のテスト、実行を開始:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestingSuite" parallel="none">
<test name="Test1">
<classes>
<class name="tests.Page1"/>
</classes>
</test>
<test name="Test 2">
<classes>
<class name="tests.Page2"/>
</classes>
</test>
</suite>
同様の問題が発生し、Eclipse内でプロジェクトのクリーンアップを実行することで解決しました(プロジェクト->クリーンアップ->選択したプロジェクトのクリーンアップ)
私の場合、@ TestアノテーションはIDEとしてimport org.junit.Test
として自動的にインポートされました。
import org.testng.annotations.Test
に変更した後、テストは正しくピックアップされました。
コードに2つの問題がありました:
1。これは、@ Testメソッドがブール値を返す別のメソッドを呼び出していたためです。同じ@Testとメソッドにコメントすると、testNG xml全体が機能し始めました。
2。 2番目の間違いは、私が以下を使用していたことです。これは、ポイクラスの割り当てが間違っていました。ワークブックWB =新しいXSSFWorkbook(FIS);シートWSh = WB.getSheetAt(1);上記を以下に変更しました:XSSFWorkbook WB = new XSSFWorkbook(FIS); XSSFSheet WSh = WB.getSheetAt(1);上記の両方の修正後、スクリプトは機能し始めました。
私は同じ問題に直面していました、私はそれが私のために働いたEclipseマーケットプレイスからTestNGを更新/インストールしました
@Testメソッドが戻り値の型がtrue/falseであるpublic boolean()の場合、実行されません。奇妙ですが、私の場合は機能しました。
私はこれと同じ問題を抱えていました、これが私のために働いたものです:
すべてのTestNGライブラリをプロジェクトの別のlibフォルダーに配置しました
a。 com.beust.jcommander_1.72.0.jar
b。 org.Apache-extras.beanshell.bsh_2.0.0.b6.jar
c。 org.testng_6.14.2.r201802161450.jar
d。 or.yaml.snakeyaml_1.17.0.jar
また、Selenium-serverとchromedriverのコピーもlibフォルダーに入れました
プロジェクトフォルダーから(testng.xml
プロジェクトのルートにあります)私は実行しました:
Java -cp .\lib\*;.\target\classes org.testng.TestNG testng.xml
私は同じ問題を抱えていて、これが私の結果です:私のプロジェクトでは、テストファイルを
src/test/Java/com/temporary/core
同時に私はテストのためのリソースを持っていました
src/test/resources/com/temporary/Core
私が見つけたように、testngは2番目のディレクトリでテストファイルを見つけようとしました。
リソースのあるディレクトリの名前をCoreからtcoreに変更すると、問題が修正されました。
非常にシンプルですが、見分けるのが難しい場合があります。 @Test
は、対応するデータプロバイダーからデータが返されない場合は選択されません。
私にもこの問題があり、上記の解決策はどれも機能しませんでした。ただし、Eclipseを再起動すると、再起動されました。これは不必要な答えのように思えますが、私がもっと早くやっていれば、私自身も多くの時間を節約できただろうので、とにかく投稿します。
私の場合、テストは誤って@Test(...)内で "enabled = false"とマークされました。値が「true」としてマークされていることを確認してください。