0

サンプル テーブルとメタ フィルターを使用したテストを開始したくありません。jbehave-core 4.0.4 と serenity 1.1.21 を使用しています

次のシナリオがあります(ここでは簡略化されていますが、同様の問題もあります)

Meta:
@env any
@run

Scenario: Add new logo by Role (test)
Given I am on soccer home page
When I login as "<login>" with "<password>" password
Examples:
| login                                 | password |
| {{site.executive.username::property}} | {{site.executive.password::property}} |
| {{site.webmaster.username::property}} | {{site.webmaster.password::property}} |

そして、次のコマンドを使用してテストを実行しています

verify -Dmetafilter=+run

この「@run」タグをローカル コンピューターでのテスト実行に使用しています。しかし、このコマンドは上記のシナリオを実行しません。出力は「成功」ですが、出力には次のものがあります。

Scenario: Add new logo by Role (test)
Failed to run story stories/club/ClubSetups1.story
java.lang.NullPointerException
    at org.jbehave.core.embedder.PerformableTree$PerformableScenario.perform(PerformableTree.java:876)
    at org.jbehave.core.embedder.PerformableTree$PerformableStory.performScenarios(PerformableTree.java:804)
    at org.jbehave.core.embedder.PerformableTree$PerformableStory.perform(PerformableTree.java:777)
    at org.jbehave.core.embedder.PerformableTree.performCancellable(PerformableTree.java:409)
    at org.jbehave.core.embedder.PerformableTree.perform(PerformableTree.java:380)
    at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:291)
    at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:265)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
12 stories excluded by filter: +run -ignore

奇妙な点は、各行に「@run」値を持つ「Meta:」列を追加すると、テストがうまく実行されることです。したがって、テーブルに "Meta:" 列がない場合でも、examples テーブルで metafilter が機能することをお勧めしますが、これは私の観点からは間違っています。

今のところ、この「Meta:」列を追加する以外に何も表示されないため、誰かが解決策を提案してください。しかし、持っているすべてのパラメーターを複製する必要があるため、悪いです。

4

1 に答える 1