0

TestNGを実行するときのsurefireはTestNGantタスクとどのように違うのだろうかと思っていました。その理由は、JUnitテストベースを拡張するTestNGテストを実行しようとすると、動作に一貫した違いが見られるためです(これは、ここで説明されているTestNGでJBehaveテストを実行するための回避策です:http://jbehave.org/documentation/faq/)。Surefireは私のテストをJUnitテストとして誤って検出しますが(おそらくそのベースがTestCaseであるため)、Antタスクは完全に実行されます。TestNGが両方のケースをどのように処理するかについての洞察を誰かが提供できますか?

テストは次のようになります。

public class YourScenario extends JUnitScenario {

@org.testng.annotations.Test 
public void runScenario() throws Throwable {
    super.runScenario();
}
}
4

2 に答える 2

3

簡単に言うと、antタスクはTestNGディストリビューションの一部であるため、テストの一部であり、TestNGを常に最新の状態に保つようにしています。

SurefireはMavenプロジェクトの一部として開発されているため、遅れることがあります(そして、あなたと同じように、Surefireでテストを実行すると、コマンドライン/ ant/Eclipseから実行した場合には発生しなかったバグが発生することがあります。 )。

私はこの質問をMavenチームの注意を引くつもりです、多分彼らはもっと言う必要があるでしょう。

于 2010-06-25T21:00:03.783 に答える
1

これは既知のバグのようです:http://jira.codehaus.org/browse/SUREFIRE-575

Surefireの自動テストケース検出の代わりにTestNGXMLスイート定義を使用してみましたか?

于 2010-06-26T02:03:18.570 に答える