X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fant%2Ftest%2FSlcTestTask.java;h=3acfc5e0fab00260e64b5782da7ddd803a78de6b;hb=62e442adb36b006627b17061864dfa4edde0a99a;hp=96b5176e9b70a8dfad1005212e73dd9b1867dd0b;hpb=faf680e212bf3e18837c4f798587856e061273b3;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java index 96b5176e9..3acfc5e0f 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/test/SlcTestTask.java @@ -8,12 +8,18 @@ import org.argeo.slc.ant.SlcAntConfig; import org.argeo.slc.ant.spring.AbstractSpringArg; import org.argeo.slc.ant.structure.SAwareTask; import org.argeo.slc.core.deploy.DeployedSystem; +import org.argeo.slc.core.process.SlcExecution; +import org.argeo.slc.core.process.SlcExecutionAware; import org.argeo.slc.core.structure.StructureAware; +import org.argeo.slc.core.structure.tree.TreeSPath; import org.argeo.slc.core.test.ExecutableTestRun; +import org.argeo.slc.core.test.SimpleTestResult; +import org.argeo.slc.core.test.SimpleTestRun; import org.argeo.slc.core.test.TestData; import org.argeo.slc.core.test.TestDefinition; import org.argeo.slc.core.test.TestResult; import org.argeo.slc.core.test.WritableTestRun; +import org.argeo.slc.spring.SpringUtils; /** Ant task wrapping a test run. */ public class SlcTestTask extends SAwareTask { @@ -28,6 +34,7 @@ public class SlcTestTask extends SAwareTask { @Override public void executeActions(String mode) throws BuildException { + // find test run final String testRunBeanT; if (testRunBean != null) { testRunBeanT = testRunBean; @@ -35,8 +42,25 @@ public class SlcTestTask extends SAwareTask { testRunBeanT = getProject().getUserProperty( SlcAntConfig.DEFAULT_TEST_RUN_PROPERTY); } - WritableTestRun testRun = (WritableTestRun) getContext().getBean( - testRunBeanT); + WritableTestRun testRun = null; + + if (testRunBeanT != null) { + testRun = (WritableTestRun) getContext().getBean(testRunBeanT); + if (log.isTraceEnabled()) + log.trace("Load test run bean from bean name " + testRunBeanT); + } + + if (testRun == null) { + testRun = loadSingleFromContext(WritableTestRun.class); + if (testRun == null) { + testRun = new SimpleTestRun(); + if (log.isTraceEnabled()) + log.trace("Created simple test run"); + } else { + if (log.isTraceEnabled()) + log.trace("Load test run from scanning Spring context"); + } + } // set overridden references if (testDataArg != null) { @@ -61,9 +85,25 @@ public class SlcTestTask extends SAwareTask { // notify path to test result TestResult result = testRun.getTestResult(); + if (result == null) { + result = loadSingleFromContext(TestResult.class); + if (result == null) { + result = new SimpleTestResult(); + if (log.isTraceEnabled()) + log.trace("Created simple test result"); + } else { + if (log.isTraceEnabled()) + log.trace("Load test result from scanning Spring context"); + } + testRun.setTestResult(result); + } + + SlcExecution slcExecution = getSlcExecution(); + testRun.notifySlcExecution(slcExecution); + if (result != null && result instanceof StructureAware) { - ((StructureAware) result).notifyCurrentPath(getRegistry(), - getPath()); + ((StructureAware) result).notifyCurrentPath( + getRegistry(), getTreeSPath()); } ((ExecutableTestRun) testRun).execute(); @@ -104,6 +144,9 @@ public class SlcTestTask extends SAwareTask { return testResultArg; } + protected T loadSingleFromContext(Class clss) { + return SpringUtils.loadSingleFromContext(getContext(), clss); + } } class TestDefinitionArg extends AbstractSpringArg {