rest CitrusFramework无法通过java运行
我试图使用cucumber为REST和SOAP调用创建一个Citrus API框架。在创建了所需的所有类和功能之后,我开始运行runner类,在运行runnerclass时,我收到了一个错误消息Unrecognized plugin: com.consol.citrus.cucumber.CitrusReporter
完整错误将附在下面
我的Runner类在com.consol.citrus.demo.voting.rest
包中
package com.consol.citrus.Petstore.rest;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith(Cucumber.class)
@CucumberOptions(glue = { "com.consol.citrus.Petstore.rest",
"com.consol.citrus.cucumber.step.runner.core",
"com.consol.citrus.cucumber.step.runner.http" },
plugin = { "com.consol.citrus.cucumber.CitrusReporter" })
public class PetstorerestIT {
}
我的Stepdef在com.consol.citrus.demo.voting.rest
包中
package com.consol.citrus.Petstore.rest;
import org.springframework.http.HttpStatus;
import com.consol.citrus.annotations.CitrusEndpoint;
import com.consol.citrus.annotations.CitrusResource;
import com.consol.citrus.dsl.builder.HttpActionBuilder;
import com.consol.citrus.dsl.runner.TestRunner;
import com.consol.citrus.http.client.HttpClient;
import cucumber.api.java.en.And;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Petstoresteps {
@CitrusEndpoint
private HttpClient votingClient;
@CitrusResource
private TestRunner runner;
@Given("^i set variables to configure$")
public void i_set_variables_to_configure() throws Throwable {
runner.variable("id", "citrus:randomUUID()");
runner.variable("name", "ArunKumar");
runner.variable("photoUrls", "photo.jpg");
runner.variable("status", "available");
}
@Given("^i send the payload request$")
public void i_send_the_payload_request() throws Throwable {
// Write code here that turns the phrase above into concrete actions
runner.http(action -> action.client(votingClient)
.send()
.post("/voting")
.contentType("application/json")
.payload("{\r\n" +
" \"id\": \"${id}\",\r\n" +
" \"category\": {\r\n" +
" \"id\": \"${id}\",\r\n" +
" \"name\": \"${name}\"\r\n" +
" },\r\n" +
" \"name\": \"${name}\",\r\n" +
" \"photoUrls\": [\r\n" +
" \"${photoUrls}\"\r\n" +
" ],\r\n" +
" \"tags\": [\r\n" +
" {\r\n" +
" \"id\": \"${id}\",\r\n" +
" \"name\": \"${name}\"\r\n" +
" }\r\n" +
" ],\r\n" +
" \"status\": \"${status}\"\r\n" +
"}"));
}
@And("^i check for the content type$")
public void i_check_for_the_content_type() throws Throwable {
// Write code here that turns the phrase above into concrete actions
runner.http(action -> action.client(votingClient)
.receive()
.response().contentType("application/json"));
}
@Then("^receive status (\\d+) OK$")
public void receive_status_OK(int arg1) throws Throwable {
// Write code here that turns the phrase above into concrete actions
HttpActionBuilder arg = runner.http(action -> action.client(votingClient)
.receive()
.response(HttpStatus.OK));
String argg = arg.toString();
System.out.println(argg);
}
}
我的CitrusEndpointConfig在com.consol.citrus.Petstore
包中
package com.consol.citrus.Petstore;
import com.consol.citrus.dsl.endpoint.CitrusEndpoints;
import com.consol.citrus.http.client.HttpClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class CitrusEndpointConfig {
@Bean
public HttpClient votingClient() {
return CitrusEndpoints.http()
.client()
.requestUrl("https://petstore.swagger.io/v2")
.build();
}
}
错误消息:
cucumber.runtime.CucumberException: Unrecognized plugin: com.consol.citrus.cucumber.CitrusReporter
at cucumber.runtime.RuntimeOptions$ParsedPluginData.addPluginName(RuntimeOptions.java:372)
at cucumber.runtime.RuntimeOptions.parse(RuntimeOptions.java:125)
at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:85)
at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:78)
at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:70)
at cucumber.runtime.RuntimeOptionsFactory.create(RuntimeOptionsFactory.java:25)
请指导我解决这个问题!我非常需要它
柑橘应用。属性:
# 1 楼答案
您是否已将
CitrusObjectFactory
属性添加到cucumber.properties
文件中?根据the documentation: