Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.IllegalArgumentException:需要WebApplicationContext_Java_Spring Boot_Cucumber - Fatal编程技术网

java.lang.IllegalArgumentException:需要WebApplicationContext

java.lang.IllegalArgumentException:需要WebApplicationContext,java,spring-boot,cucumber,Java,Spring Boot,Cucumber,文件是:: @RunWith(Cucumber.class)public class runTest {} SpringRunner文件:: @RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class, properties = "spring.main.web-application-type=reactive",webEnvironment = WebEnvironment.RANDOM_PORT) @W

文件是::

@RunWith(Cucumber.class)public class runTest {}
SpringRunner文件::

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, properties = "spring.main.web-application-type=reactive",webEnvironment = WebEnvironment.RANDOM_PORT)
@WebAppConfiguration
@AutoConfigureMockMvc
@ContextConfiguration
public abstract class SpringIntegrationTesting {}
步骤定义文件::

@ContextConfiguration(locations = { "Cucumber.xml" })
@WebAppConfiguration
public class UserLoginSteps extends SpringIntegrationTesting {

    @Autowired
    private WebApplicationContext wac;
    private MockMvc mvc;
    private MvcResult result;
    @Inject
    public void init(WebApplicationContext context) {
        this.wac = context;
    }
    @Before
    public void before() throws Exception {
        mvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
    }
....}
错误是

java.lang.IllegalArgumentException: WebApplicationContext is required
    at org.springframework.util.Assert.notNull(Assert.java:115)
    at org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder.<init>(DefaultMockMvcBuilder.java:52)
    at org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup(MockMvcBuilders.java:47)
    at com.credable.test.UserLoginSteps.before(UserLoginSteps.java:62)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at cucumber.runtime.Utils$1.call(Utils.java:34)
    at cucumber.runtime.Timeout.timeout(Timeout.java:13)
    at cucumber.runtime.Utils.invoke(Utils.java:30)
    at cucumber.runtime.java.JavaHookDefinition.execute(JavaHookDefinition.java:59)
    at cucumber.runtime.Runtime.runHookIfTagsMatch(Runtime.java:222)
    at cucumber.runtime.Runtime.runHooks(Runtime.java:210)
    at cucumber.runtime.Runtime.runBeforeHooks(Runtime.java:200)
    at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
    at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91)
    at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
    at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
    at cucumber.api.junit.Cucumber.runChild(Cucumber.java:89)
    at cucumber.api.junit.Cucumber.runChild(Cucumber.java:40)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at cucumber.api.junit.Cucumber.run(Cucumber.java:94)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
java.lang.IllegalArgumentException:需要WebApplicationContext
位于org.springframework.util.Assert.notNull(Assert.java:115)
位于org.springframework.test.web.servlet.setup.DefaultMockMvcBuilder。(DefaultMockMvcBuilder.java:52)
位于org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup(MockMvcBuilders.java:47)
在com.creread.test.UserLoginSteps.before上(UserLoginSteps.java:62)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:498)
atcumber.runtime.Utils$1.call(Utils.java:34)
atcumber.runtime.Timeout.Timeout(Timeout.java:13)
atcumber.runtime.Utils.invoke(Utils.java:30)
在cucumber.runtime.java.JavaHookDefinition.execute(JavaHookDefinition.java:59)
atcumber.runtime.runtime.runHookIfTagsMatch(runtime.java:222)
atcumber.runtime.runtime.runHooks(runtime.java:210)
atcumber.runtime.runtime.runBeforeHooks(runtime.java:200)
在cucumber.runtime.model.cucumbersecenario.run(cucumbersecenario.java:44)
在cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:91)中
在cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)中
在cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)中
位于org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
位于org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
位于org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
访问org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
位于org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
位于org.junit.runners.ParentRunner.run(ParentRunner.java:363)
运行(FeatureRunner.java:70)
cumber.api.junit.cumber.runChild(cumber.java:89)
cumber.api.junit.cumber.runChild(cumber.java:40)
位于org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
位于org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
位于org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
访问org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
位于org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
位于org.junit.runners.ParentRunner.run(ParentRunner.java:363)
cumber.api.junit.cumber.run(cumber.java:94)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
位于org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:538)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)
在使用cucumber和SpringRunner自动测试springbootapi时,使用features文件启动测试,其中运行测试类使用junit测试它崩溃,并给出上述错误