Junit CitrusFramework CustomAction未在测试结果中失败testcase
实际上,所有来自@Christoph的建议代码都没有给出答案 不知何故,Christoph的解释在测试前场景中有效,但在测试后场景中无效Junit CitrusFramework CustomAction未在测试结果中失败testcase,junit,junit4,citrus-framework,Junit,Junit4,Citrus Framework,实际上,所有来自@Christoph的建议代码都没有给出答案 不知何故,Christoph的解释在测试前场景中有效,但在测试后场景中无效 @Configuration public class AppConfig { @Bean(name="correlationId") public String getCorrelationId() { return RandomNumberFunction.getRandomNumber(48, false
@Configuration
public class AppConfig {
@Bean(name="correlationId")
public String getCorrelationId() {
return RandomNumberFunction.getRandomNumber(48, false);
}
@Bean
@DependsOn("correlationId")
public SequenceAfterTest afterTest() {
return new KrampCitrusTestRunnerAfterTestSupport();
}
@Bean
@DependsOn("correlationId")
public SequenceBeforeTest beforeTest() {
return new KrampCitrusTestRunnerBeforeTestSupport();
}
}
课后
public class KrampCitrusTestRunnerAfterTestSupport
extends TestRunnerAfterTestSupport {
@Override
public void afterTest(TestRunner runner) {
runner.echo("This action should be executed after each test");
runner.fail("message");
}
}
所以这个配置会产生以下结果-请注意它的测试成功报告
14:19:50,900 INFO citrus.Citrus|
14:19:50,901 INFO citrus.Citrus|
14:19:50,903 WARN citrus.TestCase| After test failed with errors
com.consol.citrus.exceptions.TestCaseFailedException: Test case failed
at com.consol.citrus.TestCase.executeAction(TestCase.java:236)
at com.consol.citrus.dsl.runner.DefaultTestRunner.run(DefaultTestRunner.java:198)
at com.consol.citrus.dsl.runner.DefaultTestRunner.fail(DefaultTestRunner.java:265)
at com.kramp.eai.test.common.iibexception.KrampCitrusTestRunnerAfterTestSupport.afterTest(KrampCitrusTestRunnerAfterTestSupport.java:45)
at com.consol.citrus.dsl.runner.TestRunnerAfterTestSupport.doExecute(TestRunnerAfterTestSupport.java:48)
at com.consol.citrus.actions.AbstractTestAction.execute(AbstractTestAction.java:42)
at com.consol.citrus.TestCase.afterTest(TestCase.java:203)....
Caused by: com.consol.citrus.exceptions.CitrusRuntimeException: message
at com.consol.citrus.actions.FailAction.doExecute(FailAction.java:40)
at com.consol.citrus.actions.AbstractTestAction.execute(AbstractTestAction.java:42)
at com.consol.citrus.TestCase.executeAction(TestCase.java:229)
... 31 more
14:19:50,917 INFO citrus.Citrus|
14:19:50,917 INFO citrus.Citrus| -----------------------------------
-------------------------------------
14:19:50,917 INFO citrus.Citrus|
14:19:50,918 INFO citrus.Citrus|
14:19:50,918 INFO citrus.Citrus| AFTER TEST SUITE: SUCCESS
14:19:50,918 INFO citrus.Citrus| -----------------------------------
-------------------------------------
14:19:50,918 INFO citrus.Citrus|
14:19:50,918 INFO citrus.Citrus| -----------------------------------
-------------------------------------
14:19:50,918 INFO citrus.Citrus|
14:19:50,918 INFO citrus.Citrus| CITRUS TEST RESULTS
14:19:50,918 INFO citrus.Citrus|
14:19:50,924 INFO citrus.Citrus| TC12: CDM............................... SUCCESS
14:19:50,924 INFO citrus.Citrus|
14:19:50,924 INFO citrus.Citrus| TOTAL: 1
14:19:50,924 INFO citrus.Citrus| FAILED: 0 (0.0%)
这是因为您正处于JUnit或TestNG的后测试阶段。从技术上讲,这不再是柑橘测试的一部分。您应该在Citrus中使用*AfterTestSupport类,如下所述:。只有这样,您才能访问Citrus中的测试变量和测试边界。仍然不好。@重写公共无效后测试(TestRunner runner){FailAction action=new FailAction();action.setMessage(“ERROR”);runner.run(action);}我在报告信息nnerAfterTestSupport中得到了这一点,事件名称:输出警告citrus.TestCase |测试失败后出现错误com.consol.citrus.exceptions.TestCaseFailedException:测试用例失败citrus.citrus |测试套件后:成功citrus.citrus | citrus.citrus | citrus测试结果FlowTestCase.flowTestItemUpdateMessage成功您必须将后测试支持类添加到Spring应用程序上下文使用citrus-context.XML
中的XML bean定义,或通过Java Spring bean config@bean public sequencePostTest postest(){返回新的MyPostTestSupport();}