groovy.lang.MissingMethodException: No signature o

2019-07-16 18:03发布

问题:

I am trying to run java eclipse files from soapUI. The files currently run fine in Eclipse, however when attempted to be run in soapUI, the following error message is shown.

groovy.lang.MissingMethodException:
  No signature of method: com.company.automation.testing.Test()
  is applicable for argument types: (java.lang.String)
                            values: [https://avcedevn1.mas.nsroot.net:17765/]
  Possible solutions: init(java.lang.String, java.lang.Boolean), wait(), wait(long), wait(int), any(), print(java.lang.Object)

I think this suggests that the init parameters are set wrong however I believe I have them set up correctly as init(String, Boolean). Why is this error message shown and how can I resolve it?

code from soapUI groovyscript:

import com.company.automation.testing.Test

def env = testRunner.testCase.testSuite.project.getPropertyValue("env")
def baseUrl = testRunner.testCase.testSuite.project.getPropertyValue("baseUrl")

log.info("The baseurl is "+baseUrl)
log.info("The env under test is "+env)

Test testStep = new Test();
testStep.init(baseUrl);
testStep.execute(null);

code snippet from Eclipse:

  package com.company.automation.testing;

    import com.eviware.soapui.model.support.AbstractSubmitContext;
    import com.eviware.soapui.model.testsuite.TestRunner;

    public class Test extends BaseSelenium {
       public static void main(final String[] args) {
          final Test trial = new Test();
          try {
             trial.init("https://avcedevn1.mas.nsroot.net:17765/", false);
          } catch (Exception e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
          }
          trial.execute(null);
       }

BaseSelenium class code snippet in Eclipse:

public void init(final String baseUrl, Boolean useDifferentNavigURL) throws Exception {

      this.startTime = System.currentTimeMillis();

      driver = new InternetExplorerDriver();

      this.baseUrl = baseUrl;

      selenium = new WebDriverBackedSelenium(driver, baseUrl);
   }

回答1:

I guess you missed the boolean parameter while calling from SoapUI

testStep.init(baseUrl);