Cucumber Java:JSONプラグインの生成を強制する方法

iamkenos

概要:たとえばx、テストの数が失敗した場合など、実行中のキュウリテストパックを途中で停止したい場合があります

これは問題なく実行できますがplugin = {json:...}、テストの停止時にjsonファイル()を生成する必要があります。これは実行可能ですか?

私がこれまでに試したこと:

  • デバッグして、レポート/プラグインの生成が行われる場所を確認します。この行が実行されるときのようです:

    Cucumber.java: runtime.getEventBus().send.....
    
        @Override
        protected Statement childrenInvoker(RunNotifier notifier) {
            final Statement features = super.childrenInvoker(notifier);
            return new Statement() {
                @Override
                public void evaluate() throws Throwable {
                    features.evaluate();
                    runtime.getEventBus().send(new TestRunFinished(runtime.getEventBus().getTime()));
                    runtime.printSummary();
                }
            };
        }
    

    runtimeフィールドにアクセスしたいと思っていましたが、private修飾子があります。また、経由でアクセスしようとしましたreflectionsが、必要なものが正確に得られていません。

  • iamkenos

    かなり汚いが、実用的な解決策を見つけて、私が必要なものを手に入れました。誰かが必要になるかもしれない場合に備えて、ここに私の解決策を投稿してください。

  • カスタムキュウリランナー実装を作成して、ランタイムインスタンスを取得します。

    public final class Foo extends Cucumber {
        static Runtime runtime;
    
        /**
         * Constructor called by JUnit.
         *
         * @param clazz the class with the @RunWith annotation.
         * @throws IOException         if there is a problem
         * @throws InitializationError if there is another problem
         */
        public Foo(Class clazz) throws InitializationError, IOException {
            super(clazz);
        }
    
        @Override
        protected Runtime createRuntime(ResourceLoader resourceLoader, ClassLoader classLoader, RuntimeOptions runtimeOptions) throws InitializationError, IOException {
            runtime = super.createRuntime(resourceLoader, classLoader, runtimeOptions);
            return runtime;
        }
    }
    

  • 使用するプラグインに応じて、ファイルを生成するのと同じ行を呼び出します。

    public final class ParentHook {
    
        @Before
        public void beforeScenario(Scenario myScenario) {
    
        }
    
        @After
        public void afterScenario() {
            if (your condition to stop the test) {
               //custom handle to stop the test
               myHandler.pleaseStop();
               Foo.runtime.getEventBus().send(new TestRunFinished(Foo.runtime.getEventBus().getTime()));
            }
        }
    }
    

  • ただし、これには、Foo.class例:の@RunWith(Foo.class)代わりに次の方法でテストを実行する必要があります。@RunWith(Cucumber.class)

    ここではそれほど価値はありませんが、現時点で必要なものに適合しています。Cucumberがこれを箱から出して行う方法を提供することを願っています。より良い方法がある場合は、ここに投稿してください。確認されたら回答を受け付けます。

  • この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

    侵害の場合は、連絡してください[email protected]

    編集
    0

    コメントを追加

    0

    関連記事

    分類Dev

    Cucumber + TestNGとCucumber + JUNITの比較

    分類Dev

    Cucumber Java using dataprovider

    分類Dev

    cucumber eclipseプラグインを手動でインポートする方法は?

    分類Dev

    Android Studio Cucumber for Java plugin

    分類Dev

    TestFXとCucumberの使用

    分類Dev

    5.0.0以降のio.cucumber.junit.Cucumber.javaでgetDescription()をオーバーライドする方法はありますか?

    分類Dev

    ビルド番号をmaven-cucumber-reportingプラグインに渡す方法

    分類Dev

    ビルド番号をmaven-cucumber-reportingプラグインに渡す方法

    分類Dev

    Cucumber JavaDataTableの要素を更新する方法

    分類Dev

    Generate java test class from features in cucumber

    分類Dev

    SonarqubeとCucumberの機能

    分類Dev

    cucumber-junit-platform-engineの@CucumberOptions

    分類Dev

    Cucumber-JVMの--formatオプションを更新する方法は?

    分類Dev

    cucumber.runtime.CucumberException:プラグインクラスをロードできませんでした:Cucumber SeleniumおよびJavaでjson-pretty

    分類Dev

    SpringをCucumberに統合する方法

    分類Dev

    CucumberでのJava 8時間クラス

    分類Dev

    Cucumber DataTableエラー-io.cucumber.datatable.UndefinedDataTableTypeException:DataTableをcucumber.api.DataTableに変換できません

    分類Dev

    ステップ定義クラスでCucumber "cucumber.api.java8.En"インターフェースを実装する

    分類Dev

    capybara webkit -cucumberを使用してcapybaraのブラウザをアップグレードする方法は?

    分類Dev

    Cucumber Java-ExtentReports-IncompatibleClassChangeError:実装クラス

    分類Dev

    Cucumberの論理ANDおよびORタグ

    分類Dev

    cucumber.jsの推奨されるideまたはプラグインは何ですか?

    分類Dev

    Selenium Cucumber Repository(Java)Picocontainerの問題

    分類Dev

    Cucumber Javaでネストされたシナリオアウトラインを使用する方法

    分類Dev

    Visual Studio Code(VSCode)でCucumberをデバッグする方法は?

    分類Dev

    Cucumberテストがcucumber.propertiesファイルを読み取らない

    分類Dev

    Is there a way to integrate Gradle / Cucumber / Selenium tests into Browserstack (Java)?

    分類Dev

    IDEなしでSlenium + Java + Cucumberを実行する方法

    分類Dev

    Cucumber-JVMMaven統合の問題

    Related 関連記事

    1. 1

      Cucumber + TestNGとCucumber + JUNITの比較

    2. 2

      Cucumber Java using dataprovider

    3. 3

      cucumber eclipseプラグインを手動でインポートする方法は?

    4. 4

      Android Studio Cucumber for Java plugin

    5. 5

      TestFXとCucumberの使用

    6. 6

      5.0.0以降のio.cucumber.junit.Cucumber.javaでgetDescription()をオーバーライドする方法はありますか?

    7. 7

      ビルド番号をmaven-cucumber-reportingプラグインに渡す方法

    8. 8

      ビルド番号をmaven-cucumber-reportingプラグインに渡す方法

    9. 9

      Cucumber JavaDataTableの要素を更新する方法

    10. 10

      Generate java test class from features in cucumber

    11. 11

      SonarqubeとCucumberの機能

    12. 12

      cucumber-junit-platform-engineの@CucumberOptions

    13. 13

      Cucumber-JVMの--formatオプションを更新する方法は?

    14. 14

      cucumber.runtime.CucumberException:プラグインクラスをロードできませんでした:Cucumber SeleniumおよびJavaでjson-pretty

    15. 15

      SpringをCucumberに統合する方法

    16. 16

      CucumberでのJava 8時間クラス

    17. 17

      Cucumber DataTableエラー-io.cucumber.datatable.UndefinedDataTableTypeException:DataTableをcucumber.api.DataTableに変換できません

    18. 18

      ステップ定義クラスでCucumber "cucumber.api.java8.En"インターフェースを実装する

    19. 19

      capybara webkit -cucumberを使用してcapybaraのブラウザをアップグレードする方法は?

    20. 20

      Cucumber Java-ExtentReports-IncompatibleClassChangeError:実装クラス

    21. 21

      Cucumberの論理ANDおよびORタグ

    22. 22

      cucumber.jsの推奨されるideまたはプラグインは何ですか?

    23. 23

      Selenium Cucumber Repository(Java)Picocontainerの問題

    24. 24

      Cucumber Javaでネストされたシナリオアウトラインを使用する方法

    25. 25

      Visual Studio Code(VSCode)でCucumberをデバッグする方法は?

    26. 26

      Cucumberテストがcucumber.propertiesファイルを読み取らない

    27. 27

      Is there a way to integrate Gradle / Cucumber / Selenium tests into Browserstack (Java)?

    28. 28

      IDEなしでSlenium + Java + Cucumberを実行する方法

    29. 29

      Cucumber-JVMMaven統合の問題

    ホットタグ

    アーカイブ