Junit CitrusFramework CustomAction未在测试结果中失败testcase

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

实际上,所有来自@Christoph的建议代码都没有给出答案 不知何故,Christoph的解释在测试前场景中有效,但在测试后场景中无效

    @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();}