java—给定一个包含多个场景的故事,如何运行特定的jbehave场景

hfyxw5xn  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(125)

我正在使用jbehave故事和测试用例测试几个api。我有一个故事文件和该故事文件的配置(附在下面),在该故事文件中,我只想运行这样一个场景:

Scenario: Testing the models API'S status code
Given The model API URL <URL> whose status code is to be tested
When The API req is made to the model API
Then Correct Status code <status> is returned

我怎样才能做到这一点?我读过一些melta过滤器和@current注解,但这让我很困惑。有人能给我一个关于如何只运行一个故事场景的分步解释,并解释我可能需要添加到我的故事文件中才能这样做的任何额外配置,谢谢!!
我的故事文件:

Scenario:Testing the application type and output for api request with 443018111 id
Given The valid authorized <URL>
When The request is made
Then <applicationType> is json and body is as in documentation which is <content>

Examples:
|URL|applicationType|content|
|https://sandbox.predera.com/aiq/api/projects/summary|content-type: application/json|{"owner":"ppallavalli@umass.edu","summary":{"failing_models":[],"languages":{},"project_id":"a-443018111","environments":{},"libraries":{"KERAS":1,"SKLEARN":1},"no_of_experiments":2,"no_of_models":0,"last_activity_date_experiments":"2021-06-09T17:38:08.988Z","last_activity_date_models":""},"name":"churn-juyma","description":"Customer Churn Example","last_modified_date":"2021-06-09T17:38:06.048Z","id":"a-443018111","created_date":"2021-06-09T17:38:06.048Z","last_modified_by":"ppallavalli@umass.edu","created_by":"ppallavalli@umass.edu","users":["ppallavalli@umass.edu"]}|
|https://sandbox.predera.com/aiq/api/projects/a-443018111|content-type: application/json|{"owner":"ppallavalli@umass.edu","name":"churn-juyma","description":"Customer Churn Example","last_modified_date":"2021-06-09T17:38:06.048Z","id":"a-443018111","created_date":"2021-06-09T17:38:06.048Z","last_modified_by":"ppallavalli@umass.edu","created_by":"ppallavalli@umass.edu","users":["ppallavalli@umass.edu"]}|

Scenario: Testing the arg/counts api's application type and content
Given The arg/count api URI <URI>
When It is called using get req
Then application type is <type> and body is <contentt> as in documentation
Examples:
|URI|type|contentt|
|https://sandbox.predera.com/aiq/api/projects/aggs/count|content-type: application/json|{"count":1}|
|https://sandbox.predera.com/aiq/api/projects/aggs/count|content-type: application/json|{"count":2}|
|https://sandbox.predera.com/aiq/api/projects/aggs/count|content-type: application/json|{"count":3}|

Scenario: Testing the models API'S status code
Given The model API URL <URL> whose status code is to be tested
When The API req is made to the model API
Then Correct Status code <status> is returned

故事配置文件:

public class GetProjectStory extends JUnitStories {

    @Override
    public Configuration configuration() {
        return new MostUsefulConfiguration().useStoryLoader(new LoadFromClasspath(this.getClass())).useStoryReporterBuilder(new StoryReporterBuilder().withCodeLocation(CodeLocations.codeLocationFromClass(this.getClass())).withDefaultFormats().withFormats(StoryReporterBuilder.Format.CONSOLE, StoryReporterBuilder.Format.HTML));
    }

    @Override
    public InjectableStepsFactory stepsFactory() {
        return new InstanceStepsFactory(configuration(),new PrederaAiqApplicationTests());
    }

    @Override
    @Test
    public List<String> storyPaths() {
        return new StoryFinder().findPaths(CodeLocations.codeLocationFromClass(this.getClass()).getFile(), "**/get_project_story.story" ,"");
    }
    @Override
    @Test
    public void run() {
        try {
            super.run();
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题