Я пытался создать инфраструктуру Citrus API для REST и SOAP вызовов с использованием огурца. После создания всех необходимых классов и функций, и я пришел, чтобы запустить класс бегуна, во время работы класс бегунка получает сообщение о том, что Unrecognized plugin: com.consol.citrus.cucumber.CitrusReporter
полная ошибка будет прикреплена ниже.
Мой класс бегуна находится в 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)
Пожалуйста, помогите мне решить эту проблему! мне это так нужно!
Cucumber.properties:
Citrus-application.properties: