Soapui Groovy - ProWsdlTestSuitePanelBuilder.buildDesktopPanel上没有方法错误签名

时间:2013-06-27 14:43:59

标签: groovy soapui

我正在编写一个脚本,以便在SoapUI 4.5.1中同时在多个项目中自动运行多个TestSuite:

import com.eviware.soapui.impl.wsdl.panels.testsuite.*;

def properties = new com.eviware.soapui.support.types.StringToObjectMap();
def currentProject = testRunner.getTestCase().testSuite.getProject();
def workspace = currentProject.getWorkspace();

def otherProject = workspace.getProjectByName('Project 1');
def otherTestSuite = CGReportsProject.getTestSuiteByName('TestSuite 1');

otherTestSuite.run(properties, true);

但是,我还试图为脚本运行的每个TestSuite打开TestSuite面板,以便可视化跟踪套件的进度。这就是我遇到麻烦的地方:

ProWsdlTestSuitePanelBuilder.buildDesktopPanel(otherTestSuite);

此特定行会引发错误:

groovy.lang.MissingMethodException: No signature of method:
static com.eviware.soapui.impl.wsdl.panels.testsuite.
ProWsdlTestSuitePanelBuilder.buildDesktopPanel() is
applicable for argument types: 
(com.eviware.soapui.impl.wsdl.WsdlTestSuitePro) values:
[com.eviware.soapui.impl.wsdl.WsdlTestSuitePro@1d0b2bc6] 
Possible solutions: 
buildDesktopPanel(com.eviware.soapui.impl.wsdl.WsdlTestSuitePro),
buildDesktopPanel(com.eviware.soapui.model.ModelItem),
buildDesktopPanel(com.eviware.soapui.impl.wsdl.WsdlTestSuite),
buildDesktopPanel(com.eviware.soapui.model.ModelItem),
buildDesktopPanel(com.eviware.soapui.impl.wsdl.WsdlTestSuite),
buildDesktopPanel(com.eviware.soapui.model.ModelItem)
error at line: 12

我认为我在ProWsdlTestSuitePanelBuilder.buildDesktopPanel()中投掷的WsdlTestSuitePro的实例由于某种原因未被接受 - 但我不知道为什么。

此时,我也不确定ProWsdlTestSuitePanelBuilder.buildDesktopPanel()是否真的是我想要的,但它是唯一一个需要WsdlTestSuitePro的UI构建器,就像我所有的Testsuites一样。< / p>

1 个答案:

答案 0 :(得分:0)

好的,所以这属于新手类别。我没注意buildDesktopPanel是静态的这个事实。

但是,我设法解决了这个问题并创建了最终产品:

// Create a UISupport container for all the panels we'll be showing

def UIDesktop = new com.eviware.soapui.support.UISupport();

// Basic environment information

def properties = new com.eviware.soapui.support.types.StringToObjectMap();
def currentProject = testRunner.getTestCase().testSuite.getProject();
def workspace = currentProject.getWorkspace();

// Get the various Projects we'll be using

def OtherProject = workspace.getProjectByName('Other Project');

// Get the various TestSuites we'll be running

def OtherTestSuite = OtherProject.getTestSuiteByName('Other Test Suite');

// Generate the Panels for the Testsuites

def TestSuitePanel = new com.eviware.soapui.impl.wsdl.panels.testsuite.ProWsdlTestSuiteDesktopPanel(OtherTestSuite);

// Show TestSuite Panels

UIDesktop.showDesktopPanel(TestSuitePanel);

// Run the Testsuites

OtherTestSuite.run(properties, true);