5

で注釈が付けられたメソッドでストーリー名を取得したいと思い@BeforeStoryます。

デバッグ目的でこれが必要です。runStoriesAsPaths複数のスレッドを使用して一連のストーリーを実行しているため、どのスレッドがどのストーリーを実行しているかをログに記録しようとしています。

これを行う方法はありますか?

4

2 に答える 2

3

まず、新しい StoryReporter を作成する必要があります (そのクラスを拡張します)。そのクラスでは、ストーリー/シナリオ/ステップの前後に実行するアクションを追加でき、ストーリー名があります。例:

public class NewStoryReporter implements StoryReporter {

private StoryReporter delegate;

public NewStoryReporter(StoryReporter delegate) {
    this.delegate = delegate;
}

@Override
public void beforeStory(Story story, boolean givenStory) {
    delegate.beforeStory(story, givenStory);
}

@Override
public void beforeScenario(String scenarioTitle) {
    delegate.beforeScenario(scenarioTitle);
}

@Override
public void beforeStep(String step) {
    if(step.equals("When after each step")){
        return;
    }
    delegate.beforeStep(step);
}

次に、StoryReporterBuilder を拡張する必要があります。これにより、NewStoryReporter が作成されます。例:

public class NewStoryReporterBuilder extends StoryReporterBuilder {

@Override
public StoryReporter build(String storyPath) {
    StoryReporter delegate = super.build(storyPath);
    return new NewStoryReporter(delegate);
}

}

次に、構成で NewStoryReporterBuilder のインスタンスを作成し、それを

Configuration configuration = new YourConfiguration().useStoryReporterBuilder(newStoryReporterBuilder....)
于 2013-10-15T20:31:26.997 に答える