@@ -75,20 +75,25 @@ private int executeRobot(String[] runArguments) throws MojoExecutionException {
7575 return externalExecute (runArguments );
7676 }
7777 }
78-
78+
7979 private int externalExecute (String [] runArguments ) throws MojoExecutionException {
8080 try {
81- return exec (RobotFramework .class , runArguments , externalRunner .getEnvironmentVariables ());
81+ if (externalRunner .getRunWithPython ()) {
82+ return PythonRunner .exec ("robot" , runArguments );
83+ } else {
84+ return exec (externalRunner .getRunnerClass (), runArguments , externalRunner .getEnvironmentVariables ());
85+ }
8286 } catch (IOException e ) {
8387 throw new MojoExecutionException ("Executing external robot failed." , e );
8488 } catch (InterruptedException e ) {
8589 throw new MojoExecutionException ("Executing external robot failed." , e );
8690 }
8791 }
8892
89- public int exec (Class klass , String [] arguments , Map <String , String > environment ) throws IOException ,
93+ public int exec (String runnerClass , String [] arguments , Map <String , String > environment ) throws IOException ,
9094 InterruptedException {
91- ProcessBuilder builder = new ProcessBuilder (createExternalCommand (klass , arguments , externalRunner .getJvmArgs ()));
95+ runnerClass = runnerClass == null ? RobotFramework .class .getCanonicalName () : runnerClass ;
96+ ProcessBuilder builder = new ProcessBuilder (createExternalCommand (runnerClass , arguments , externalRunner .getJvmArgs ()));
9297 Map <String , String > env = builder .environment ();
9398 String classpath = externalRunner .getExcludeDependencies () ? getRobotJar () : getClassPathString ();
9499 if (environment .containsKey ("CLASSPATH" )) {
@@ -104,14 +109,13 @@ public int exec(Class klass, String[] arguments, Map<String, String> environment
104109 return process .waitFor ();
105110 }
106111
107- private List <String > createExternalCommand (Class klass , String [] arguments , List <String > jvmArgs ) {
112+ private List <String > createExternalCommand (String runnerClass , String [] arguments , List <String > jvmArgs ) {
108113 String javaHome = System .getProperty ("java.home" );
109114 String javaBin = join (File .separator , javaHome , "bin" , "java" );
110- String className = klass .getCanonicalName ();
111115 List <String > cmd = new ArrayList <String >();
112116 cmd .add (javaBin );
113117 cmd .addAll (jvmArgs );
114- cmd .add (className );
118+ cmd .add (runnerClass );
115119 cmd .addAll (Arrays .asList (arguments ));
116120 System .out .println ("Executing Robot with command:" );
117121 System .out .println (cmd );
@@ -225,7 +229,6 @@ private String[] generateRunArguments() {
225229 generatedArguments .addFileToArguments (report , "-r" );
226230 generatedArguments .addFileToArguments (debugFile , "-b" );
227231 generatedArguments .addFileToArguments (argumentFile , "-A" );
228- generatedArguments .addFileToArguments (runFailed , "-R" );
229232
230233 generatedArguments .addNonEmptyStringToArguments (console , "--console" );
231234 generatedArguments .addNonEmptyStringToArguments (name , "-N" );
@@ -828,15 +831,6 @@ private String[] generateRunArguments() {
828831 */
829832 private boolean runEmptySuite ;
830833
831- /**
832- * Re-run failed tests, based on output.xml file. This can also be set via
833- * commandline using -DrunFailed=path/to/output.xml.
834- *
835- * @parameter property="runFailed"
836- */
837- private File runFailed ;
838-
839-
840834 /**
841835 * If true, sets the return code to zero regardless of failures in test cases. Error codes are
842836 * returned normally.
@@ -845,36 +839,6 @@ private String[] generateRunArguments() {
845839 */
846840 private boolean noStatusReturnCode ;
847841
848- /**
849- * <p>Test are executed in a new process if this configuration is used.</p>
850- * <p>The classpath for the new process will include by default all the test
851- * scope dependencies from the pom.</p>
852- *
853- * <ul>
854- * <li>Environment variables can be added with <strong>environmentVariables</strong> map. CLASSPATH environment
855- * variable is added (prepended) to the default dependencies.</li>
856- * <li><strong>excludeDependencies</strong> can be used to exclude the test scope dependencies from the classpath of the new process.</li>
857- * <li><strong>jvmArgs</strong> can be used to specify JVM options</li>
858- * </ul>
859- *
860- * Example:
861- * <pre><![CDATA[<externalRunner>
862- * <environmentVariables>
863- * <foo>bar</foo>
864- * <CLASSPATH>this-should-be-seen-by-external-process.jar</CLASSPATH>
865- * </environmentVariables>
866- * <jvmArgs>
867- * <jvmArg>-XX:PermSize=128m</jvmArg>
868- * <jvmArg>-XX:MaxPermSize=256m</jvmArg>
869- * <jvmArg>-Xmx512m</jvmArg>
870- * </jvmArgs>
871- * <excludeDependencies>true</excludeDependencies>
872- * </externalRunner>]]></pre>
873- *
874- * @parameter
875- */
876- private ExternalRunnerConfiguration externalRunner ;
877-
878842 /**
879843 * Turn on generic automation mode.
880844 *
0 commit comments