Issue using multiple executions via soapui-maven-plugin
When executing SoapUI tests from one project in Jenkins via the soapui-maven plugin, I use the following pom.xml and everything works just fine:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.davke</groupId> <artifactId>soapuirunner</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>soapuirunner</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <pluginRepositories> <pluginRepository> <id>smartbear-sweden-plugin-repository</id> <url>http://www.soapui.org/repository/maven2</url> </pluginRepository> </pluginRepositories> <build> <plugins> <plugin> <groupId>com.smartbear.soapui</groupId> <artifactId>soapui-maven-plugin</artifactId> <version>5.4.0</version> <configuration> <settingsFile>${SoapUI_GlobalSettings}</settingsFile> <projectFile>${SoapUI_ProjectFile}</projectFile> <testSuite>${SoapUI_TestSuite}</testSuite> <outputFolder>${basedir}/SoapUI-Reports</outputFolder> <junitReport>true</junitReport> <exportAll>true</exportAll> <printReport>true</printReport> <testFailIgnore>false</testFailIgnore> </configuration> <executions> <execution> <phase>test</phase> <goals> <goal>test</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>com.jgoodies</groupId> <artifactId>jgoodies-forms</artifactId> <version>1.9.0</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
Now I would like to execute multiple projects and by reading online it seems to be possible when adding multiple executions in the pom.xml using the pom setup as described at https://www.soapui.org/test-automation/maven/maven-2-x.html#6-Full-Example.
When rearranging my pom.xml to use the same described setup (for now I use only one execution to test if it works), I have the following pom.xml:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.davke</groupId> <artifactId>soapuirunner</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>soapuirunner</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> <pluginRepositories> <pluginRepository> <id>smartbear-sweden-plugin-repository</id> <url>http://www.soapui.org/repository/maven2</url> </pluginRepository> </pluginRepositories> <build> <plugins> <plugin> <groupId>com.smartbear.soapui</groupId> <artifactId>soapui-maven-plugin</artifactId> <version>5.4.0</version> <dependencies> <dependency> <groupId>com.jgoodies</groupId> <artifactId>jgoodies-forms</artifactId> <version>1.9.0</version> </dependency> </dependencies> <executions> <execution> <phase>test</phase> <goals> <goal>test</goal> </goals> <configuration> <settingsFile>${SoapUI_GlobalSettings}</settingsFile> <projectFile>${SoapUI_ProjectFile}</projectFile> <testSuite>${SoapUI_TestSuite}</testSuite> <outputFolder>${basedir}/SoapUI-Reports</outputFolder> <junitReport>true</junitReport> <exportAll>true</exportAll> <printReport>true</printReport> <testFailIgnore>false</testFailIgnore> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
But when running the jenkins job, I get following console output:
10:42:41 Started by user d4vke 10:42:41 Building in workspace C:\Users\d4vke\.jenkins\workspace\SoapUI-Maven-Plugin 10:42:41 Parsing POMs 10:42:41 Established TCP socket on 54016 10:42:41 [SoapUI-Maven-Plugin] $ "C:\Program Files\Java\jdk1.8.0_144/bin/java" -cp "C:\Users\d4vke\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven35-agent-1.12-alpha-1.jar;C:\Program Files\apache-maven-3.5.4\boot\plexus-classworlds-2.5.2.jar;C:\Program Files\apache-maven-3.5.4/conf/logging" jenkins.maven3.agent.Maven35Main "C:\Program Files\apache-maven-3.5.4" C:\Users\d4vke\.jenkins\war\WEB-INF\lib\remoting-3.25.jar C:\Users\d4vke\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven35-interceptor-1.12-alpha-1.jar C:\Users\d4vke\.jenkins\plugins\maven-plugin\WEB-INF\lib\maven3-interceptor-commons-1.12-alpha-1.jar 54016 10:42:43 <===[JENKINS REMOTING CAPACITY]===>channel started 10:42:44 Executing Maven: -B -f C:\Users\d4vke\.jenkins\workspace\SoapUI-Maven-Plugin\pom.xml com.smartbear.soapui:soapui-maven-plugin:test -DsettingsFile=C:\Users\d4vke\soapui-settings.xml -DprojectFile=SoapUI\EmployeePortal-soapui-project.xml -DtestSuite=EmployeePortal Tests 10:42:46 [INFO] Scanning for projects... 10:42:46 [INFO] 10:42:46 [INFO] ----------------------< com.davke:soapuirunner >---------------------- 10:42:46 [INFO] Building soapuirunner 0.0.1-SNAPSHOT 10:42:46 [INFO] --------------------------------[ jar ]--------------------------------- 10:42:47 [INFO] 10:42:47 [INFO] --- soapui-maven-plugin:5.4.0:test (default-cli) @ soapuirunner --- 10:42:48 SoapUI 5.4.0 Maven2 TestCase Runner 10:42:48 10:42:48,851 INFO [DefaultSoapUICore] initialized soapui-settings from [C:\Users\d4vke\soapui-settings.xml] 10:42:50 10:42:50,423 INFO [PluginManager] 0 plugins loaded in 1 ms 10:42:50 10:42:50,423 INFO [DefaultSoapUICore] All plugins loaded 10:42:50 10:42:50,979 INFO [SoapUI] File [C:\Users\d4vke\.jenkins\workspace\SoapUI-Maven-Plugin\soapuirunner-soapui-project.xml] does not exist, trying URL instead 10:42:50 10:42:50,979 ERROR [SoapUI] An error occurred [no protocol: soapuirunner-soapui-project.xml], see error log for details 10:42:50 java.net.MalformedURLException: no protocol: soapuirunner-soapui-project.xml 10:42:50 at java.net.URL.<init>(URL.java:593) 10:42:50 at java.net.URL.<init>(URL.java:490) 10:42:50 at java.net.URL.<init>(URL.java:439) 10:42:50 at com.eviware.soapui.impl.wsdl.WsdlProject.<init>(WsdlProject.java:227) 10:42:50 at com.eviware.soapui.impl.wsdl.WsdlProjectFactory.createNew(WsdlProjectFactory.java:41) 10:42:50 at com.eviware.soapui.impl.wsdl.WsdlProjectFactory.createNew(WsdlProjectFactory.java:28) 10:42:50 at com.eviware.soapui.tools.SoapUITestCaseRunner.runRunner(SoapUITestCaseRunner.java:349) 10:42:50 at com.eviware.soapui.tools.AbstractSoapUIRunner.run(AbstractSoapUIRunner.java:202) 10:42:50 at com.eviware.soapui.maven2.TestMojo.execute(TestMojo.java:114) 10:42:50 at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) 10:42:50 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 10:42:50 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154) 10:42:50 at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146) 10:42:50 at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) 10:42:50 at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) 10:42:50 at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) 10:42:50 at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 10:42:50 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) 10:42:50 at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) 10:42:50 at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) 10:42:50 at org.jvnet.hudson.maven3.launcher.Maven35Launcher.main(Maven35Launcher.java:130) 10:42:50 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 10:42:50 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 10:42:50 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 10:42:50 at java.lang.reflect.Method.invoke(Method.java:498) 10:42:50 at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 10:42:50 at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 10:42:50 at jenkins.maven3.agent.Maven35Main.launch(Maven35Main.java:176) 10:42:50 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 10:42:50 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 10:42:50 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 10:42:50 at java.lang.reflect.Method.invoke(Method.java:498) 10:42:50 at hudson.maven.Maven3Builder.call(Maven3Builder.java:139) 10:42:50 at hudson.maven.Maven3Builder.call(Maven3Builder.java:70) 10:42:50 at hudson.remoting.UserRequest.perform(UserRequest.java:212) 10:42:50 at hudson.remoting.UserRequest.perform(UserRequest.java:54) 10:42:50 at hudson.remoting.Request$2.run(Request.java:369) 10:42:50 at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 10:42:50 at java.util.concurrent.FutureTask.run(FutureTask.java:266) 10:42:50 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 10:42:50 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 10:42:50 at java.lang.Thread.run(Thread.java:748) 10:42:51 [ERROR] java.lang.Exception: Failed to load SoapUI project file [soapuirunner-soapui-project.xml] 10:42:51 [JENKINS] Recording test results 10:42:51 [WARNING] Attempt to (de-)serialize anonymous class hudson.maven.reporters.MavenArtifactArchiver$2; see: https://jenkins.io/redirect/serialization-of-anonymous-classes/ 10:42:51 [WARNING] Attempt to (de-)serialize anonymous class hudson.maven.reporters.MavenFingerprinter$1; see: https://jenkins.io/redirect/serialization-of-anonymous-classes/ 10:42:51 [INFO] ------------------------------------------------------------------------ 10:42:51 [INFO] BUILD FAILURE 10:42:51 [INFO] ------------------------------------------------------------------------ 10:42:51 [INFO] Total time: 4.938 s 10:42:51 [INFO] Finished at: 2018-09-27T10:42:51+02:00 10:42:51 [INFO] ------------------------------------------------------------------------ 10:42:51 Waiting for Jenkins to finish collecting data 10:42:51 [ERROR] Failed to execute goal com.smartbear.soapui:soapui-maven-plugin:5.4.0:test (default-cli) on project soapuirunner: SoapUI Test(s) failed: SoapUI Test(s) failed: 10:42:51 [ERROR] Failed to load SoapUI project file [soapuirunner-soapui-project.xml] 10:42:51 [ERROR] -> [Help 1] 10:42:51 [ERROR] 10:42:51 [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 10:42:51 [ERROR] Re-run Maven using the -X switch to enable full debug logging. 10:42:51 [ERROR] 10:42:51 [ERROR] For more information about the errors and possible solutions, please read the following articles: 10:42:51 [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 10:42:51 [JENKINS] Archiving C:\Users\d4vke\.jenkins\workspace\SoapUI-Maven-Plugin\pom.xml to com.davke/soapuirunner/0.0.1-SNAPSHOT/soapuirunner-0.0.1-SNAPSHOT.pom 10:42:51 channel stopped 10:42:52 Archiving artifacts 10:42:52 Finished: FAILURE
I have no clue why it does not pickup my soapui project, but tries to execute a non-existing soapuirunner-soapui-project.xml
Is this not a valid pom.xml setup? Because Smartbear is using the same in it's online example:
https://www.soapui.org/test-automation/maven/maven-2-x.html#6-Full-Example.