3

Eclipse の jbehave .feature ファイルで以下のように JUnitReportingRunner を使用しています。ただし、BeforeStories と AfterStories のみが実行され、.feature ファイルは実行されません。ここにコードとエラーがあります。助けてください。問題は何ですか?どんな助けでも大歓迎です。

@RunWith(JUnitReportingRunner.class)

public class CalcConfig extends JUnitStories {

    public CalcConfig() {
        JUnitReportingRunner.recommandedControls(configuredEmbedder());
    }
...

これが私が得ているエラーです:

Failed to run story test/resources/calculator/Calculator.feature
java.lang.AbstractMethodError:  de.codecentric.jbehave.junit.monitoring.JUnitScenarioReporter.lifecyle(Lorg/jbehave/core/model/Lifecycle;)V
at org.jbehave.core.reporters.DelegatingStoryReporter.lifecyle(DelegatingStoryReporter.java:79)
at org.jbehave.core.reporters.ConcurrentStoryReporter.lifecyle(ConcurrentStoryReporter.java:137)
at org.jbehave.core.embedder.StoryRunner.runCancellable(StoryRunner.java:277)
at org.jbehave.core.embedder.StoryRunner.run(StoryRunner.java:220)
at org.jbehave.core.embedder.StoryRunner.run(StoryRunner.java:181)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:229)
at org.jbehave.core.embedder.StoryManager$EnqueuedStory.call(StoryManager.java:201)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)

(AfterStories)

Generating reports view to '/Documents/workspace/Calculator/jbehave' using formats '[stats, stats, html, txt, console, junitscenarioreporter]' and view properties '{defaultFormats=stats, decorateNonHtml=true, viewDirectory=view, decorated=ftl/jbehave-report-decorated.ftl, reports=ftl/jbehave-reports-with-totals.ftl, maps=ftl/jbehave-maps.ftl, navigator=ftl/jbehave-navigator.ftl, views=ftl/jbehave-views.ftl, nonDecorated=ftl/jbehave-report-non-decorated.ftl}'
Reports view generated with 0 stories (of which 0 pending) containing 0 scenarios (of which 0 pending)
4

1 に答える 1

3

私のサイトでも同じエラーが発生しました。私の問題は、間違ったバージョンの JBehave を使用していたことです。JBehave のバージョンが JBehave-Junit-Runner と一致していることを確認してください。

特に、JBehave の 3.9-SNAPSHOT バージョンでは、JUnitScenarioReporter によって実装されていない追加のメソッド ライフサイクルが導入されています。

修正は簡単なので、今日 github にプルします。

于 2013-11-19T17:06:02.767 に答える