2017-06-21 8 views
0

maximoのために特別にパッケージ化されたセレンを実行しようとしています。 Eclipse IDEを通してスクリプトを実行すると、正常に動作します。しかし、私はJenkinsを介してTestNGスクリプトを実行しようとしているので、コマンドラインでそれらを実行できる必要があります。私は、このコマンドを使用:Selenium-Maximoはpublic java.lang.object [] [] [] framework.AutomationBaseTest.getBrowsers()を呼び出すことはできません。

java -Djava.net.preferIPv4Stack=true -ea -Dfile.encoding=Cp1252 -classpath C:\commandLine\testng.jar;C:\Users\zunigmx\Documents\workspace4\Automation\classes;C:\Users\zunigmx\Documents\workspace4\Automation\lib\* org.testng.TestNG C:\commandLine\testng-customsuite.xml 

をし、このエラーました:

enter image description here

任意の提案を?あなたは以下の特性を満たすクラスがある場合

+1

完全なスタックトレースをイメージではなくテキストとして送信してください。その画像はもうある時点で利用できなくなり、その質問はそれほど役に立たないでしょう。 – JeffC

+0

ようこそスタックオーバーフロー!参照:[Xを行うには?](https://meta.stackoverflow.com/questions/253069/whats-the-appropriate-new-current-close-reason-for-how-do-i-do-x )SOに関する期待は、質問をするユーザーが自分の質問に答えるだけでなく、その研究、コードの試行、結果を共有することです。これは、時間をかけて自分自身を助けようとしていることを示しています。明白な回答を繰り返さないようにしてくれています。そして、より具体的で適切な答えを得ることができます。参照:[ask] – JeffC

答えて

1

は、これは一般的に起こり:

  • あなたのクラスは、アノテーションを使用して注釈を付けているパラメータ化コンストラクタを持っているの@Factory
  • ファクトリメソッドがあるとしてマークされている
  • あなたのコンストラクタ同じクラスにも存在するデータプロバイダと結合されています。 TestNGのは、あなたのクラスのコンストラクタが注釈@Factoryでマークされ、データプロバイダに結合されていることを検出したときに

今では、その名前と一致する@DataProvider注釈を使用して注釈が付けられている方法を探すためにしようとしますデータプロバイダ名。このメソッドが見つかったら(その場合、メソッドはgetBrowsers()です)、TestNGはリフレクションを使用してクラスをインスタンス化し、このデータプロバイダメソッドを呼び出そうとしますが、TestNGではクラスをパラメータ化されたコンストラクタとしてインスタンス化できないため、

この問題を解決するには、getBrowsers()メソッドを静的メソッドにする必要があります。また、このメソッドを静的メソッドにする必要があります。

この動作は、テストがどのように実行されるかに関係なく同じです(JenkinsまたはEclipse IDEを介して)

関連する問題