Testng: TestNGはSpockからJUnitメソッド名を見つけることができません

作成日 2014年04月01日  ·  13コメント  ·  ソース: cbeust/testng

SpockフレームワークはJUnitテストを作成します。 これらは、TestNGを介して実行できる必要があります。 ただし、org.testng.junit.JUnit4TestMethodクラスには次のコードがあります。

    private static Method getMethod(Description desc) {
        Class<?> c = desc.getTestClass();
        String method = desc.getMethodName();
        try {
            return c.getMethod(method);
        } catch (Throwable t) {
            Utils.log("JUnit4TestMethod", 2,
                    "Method '" + method + "' not found in class '" + c.getName() + "': " + t.getMessage());
            return null;
        }
    }

渡された説明にはSpockテストのテキスト(「これは私のspockテストです」など)があり、Spockはテスト名をマングルするため、単純な「c.getMethod(method)」呼び出しは失敗します。 これが修正された場合、TestNGはSpock(JUnit)テストも実行できるはずです。

junit

最も参考になるコメント

@rumatoest文句を@ juherrが述べている

私はすでにスポックと連絡を取りたいと思っていたので(常に新しいことを学びたいと思っています)、次回はこれを調べるかもしれません。

全てのコメント13件

TestNGがテスト用にMethodを取得しようとしているのはなぜだろうか。 これにより、JUnitランナーを実装するかなりの数のテストフレームワークで問題が発生します。

+1

+1

+1

+1

+1

+1

このチケットは現在2年以上前のものです。 まだ誰も(これまで)割り当てられていません! なんて完全な冗談でしょう。 TestNGの使用を検討している人がいる場合は、サポートが非常に貧弱であることを認識しておく必要があります。 すべてのテストがJUnitで行われたらいいのにと思います...

私たちは空き時間にtestngをサポートしており、その他の最も重要な問題を修正しました。

しかし、プロジェクトはオープンです。自分で修正してみませんか? プルリクエストのお手伝いをさせていただきます。

最後に、そしてあなたが言ったように、JUnitもソリューションです(そして良いプロジェクトです)。

@ blackduck-joeこの問題を調べましたが、修正方法がわかりません。

しかし、あなたの必要性はあなたのSO theadでより明確であり、私がそれをよく理解しているなら、あなたは2種類のテスト(spock / junitとtestng)を実行したいと思うでしょう。
次に、Mavenを使用している場合は、 https: //groups.google.com/forum/#!topic / spockframework / -iys4ARQrxkを確認するか、 TestNGおよびJUnitテストを実行する必要があります

概念的には、現在のプロジェクトにjunitを追加する必要があるため、次のプロジェクトではjunitのみを使用することになります。

@rumatoest文句を@ juherrが述べている

私はすでにスポックと連絡を取りたいと思っていたので(常に新しいことを学びたいと思っています)、次回はこれを調べるかもしれません。

このページは役に立ちましたか?
0 / 5 - 0 評価