I have a cucumber JVM + Selenium scripts. The main method is something like this,
public static void main (String args[]) {
environment.environmentValue = args[0];
path.pathValue = args[1];
username.superUser = args[2];
returnCode = Main.run(
new String[] { "-g", "com.sanity.step.definition","-t", "@" +path ,
featureFile.replace("\\", "\\\\") },
SeparateClassloaderTestRunner.class.getClassLoader());
}
I have a constructor class, i.e
public Class CucumberRunner;
private ClassUtility environment;
private Classutility pathVal;
private ClassUtility userName;
public CucumberRunner(ClassUtility environment , ClassUtility pathVal,
ClassUtility userName) {
this.environment = environment;
this.pathVal=pathVal;
this.userName= userName;
}
This is my classutility Class,
public class ClassUtility {
public String environmentValue;
public String pathValue;
public String superUser;
}
I am getting the compilation error as "Cannot make a static reference to the non-static field method in main method "enviornment.environmentValue = args[0]". So how do we do dependency injection for static variables? Can we do dependency injection for runtime arguments?