Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » SWTBot » how to run SWTBot headless in Rational Software Architect(how to run SWTBot headless in R Rational Software Architect)
how to run SWTBot headless in Rational Software Architect [message #545252] Wed, 07 July 2010 06:01 Go to next message
hintcnuie  is currently offline hintcnuie
Messages: 7
Registered: July 2010
Junior Member
When I try to run headless SWTBot in Rational Software Architect, I met the following issue:
Buildfile: D:\ADAT\swtbot\build.xml
Buildfile: D:\ADAT\swtbot\build.xml

suite:

init:

swtbot-test:

java-test:
     [echo] ======================================
     [echo] Running swtbot junit tests in com.eclipse.swtbot.setup.MyFirstTestCase
     [echo] Command line args are     -application org.eclipse.swtbot.eclipse.junit4.headless.swtbottestapplication            -data workspace    formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,C:/IBM/SDP/com.eclipse.swtbot.setup.MyFirstTestCase.xml formatter=org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter    -testPluginName com.ecilpse.swtbot.setup    -className com.eclipse.swtbot.setup.MyFirstTestCase    -os win32    -ws workspace    -arch x86    -consoleLog    -debug
     [echo] JVM args are -Xms768M -XX:MaxPermSize=512m -Xmx1524M  
     [echo] JUnit Result File: C:/IBM/SDP/results/com.eclipse.swtbot.setup.MyFirstTestCase.xml.
     [echo] Console output File: C:/IBM/SDP/results/com.eclipse.swtbot.setup.MyFirstTestCase.txt.
     [echo] ======================================
     [echo] ======================================
     [echo] If you see errors above please see the file C:/IBM/SDP/results/com.eclipse.swtbot.setup.MyFirstTestCase.txt for more information.
     [echo] Errors are generally caused by missing or incorrect dependencies.
     [echo] ======================================

collect-results:
    [style] Warning: the task name <style> is deprecated. Use <xslt> instead.
    [style] Transforming into C:\IBM\SDP\results

cleanup:

run:

BUILD SUCCESSFUL
Total time: 7 seconds
Buildfile: D:\ADAT\NewSwtbot\build.xml

init:
   [delete] Deleting directory C:\IBM\SDP\workspace

instrument:
   [delete] Deleting: D:\ADAT\NewSwtbot\com.ibm.cte.swtbot.test.ser
[cobertura-instrument] Cobertura 1.9.4.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
[cobertura-instrument] Instrumenting 0 files
[cobertura-instrument] Cobertura: Saved information on 0 classes.
[cobertura-instrument] Instrument time: 31ms

suite:

init:

swtbot-test:

java-test:
     [echo] ======================================
     [echo] Running swtbot junit tests in com.ibm.cte.swtbot.test.AllTest
     [echo] Command line args are     -application org.eclipse.swtbot.eclipse.junit4.headless.swtbottestapplication        -testApplication org.eclipse.ui.ide.workbench    -data workspace    formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,./testoutput formatter=org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter    -testPluginName com.ibm.cte.swtbot.test    -className com.ibm.cte.swtbot.test.AllTest    -os win32    -ws win32    -arch x86    -consoleLog    -debug
     [echo] JVM args are  -Xms128M -Xmx368M -XX:MaxPermSize=256M -Dnet.sourceforge.cobertura.datafile=D:\ADAT\NewSwtbot/com.ibm.cte.swtbot.test.ser -Xbootclasspath/p:.//cobertura-1.9.4.1/cobertura.jar  -Dnet.sourceforge.cobertura.datafile=D:\ADAT\NewSwtbot/com.ibm.cte.swtbot.test.ser -Xbootclasspath/p:.//cobertura-1.9.4.1/cobertura.jar
     [echo] JUnit Result File: C:/IBM/SDP/results/com.ibm.cte.swtbot.test.AllTest.xml.
     [echo] Console output File: C:/IBM/SDP/results/com.ibm.cte.swtbot.test.AllTest.txt.
     [echo] ======================================
     [java] Exception in thread "WorkbenchTestable" java.lang.NoClassDefFoundError: junit.framework.TestListener
     [java] 	at java.lang.ClassLoader.defineClassImpl(Native Method)
     [java] 	at java.lang.ClassLoader.defineClass(ClassLoader.java:265)
     [java] 	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:165)
     [java] 	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:554)
     [java] 	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:524)
     [java] 	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:455)
     [java] 	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:443)
     [java] 	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:423)
     [java] 	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:193)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:367)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:446)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387)
     [java] 	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87)
     [java] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:609)
     [java] 	at java.lang.ClassLoader.defineClassImpl(Native Method)
     [java] 	at java.lang.ClassLoader.defineClass(ClassLoader.java:265)
     [java] 	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:165)
     [java] 	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:554)
     [java] 	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:524)
     [java] 	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:455)
     [java] 	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:443)
     [java] 	at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:423)
     [java] 	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:193)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findLocalClass(BundleLoader.java:367)
     [java] 	at org.eclipse.osgi.framework.internal.core.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:434)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387)
     [java] 	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87)
     [java] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:609)
     [java] 	at org.eclipse.swtbot.eclipse.junit4.headless.EclipseTestRunner.createFormatter(EclipseTestRunner.java:455)
     [java] 	at org.eclipse.swtbot.eclipse.junit4.headless.EclipseTestRunner.createAndStoreFormatter(EclipseTestRunner.java:437)
     [java] 	at org.eclipse.swtbot.eclipse.junit4.headless.EclipseTestRunner.run(EclipseTestRunner.java:179)
     [java] 	at org.eclipse.swtbot.eclipse.junit4.headless.UITestApplication.runTests(UITestApplication.java:115)
     [java] 	at org.eclipse.ui.internal.testing.WorkbenchTestable$1.run(WorkbenchTestable.java:68)
     [java] 	at java.lang.Thread.run(Thread.java:736)
     [java] Caused by: java.lang.ClassNotFoundException: junit.framework.TestListener
     [java] 	at java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:77)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClassInternal(BundleLoader.java:407)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:399)
     [java] 	at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:387)
     [java] 	at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:87)
     [java] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:609)
     [java] 	... 37 more




[Environment]:
Rational Software Architect 7.5.5 (RSA 7.5.5)
Eclipse 3.4.2
build.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="testsuite" default="run" basedir=".">
    <property name="eclipse-home" value="C:/IBM/SDP" />
	<property name="eclipse-sharedlibrary" value="C:/IBM/SDPShared" />
    <property name="plugin-name" value="com.ibm.cte.swtbot.test" />
	<property name="classname"   value="com.ibm.cte.swtbot.test.AllTest"/>
	<property name="all.buildId" value="2.0.0.502-dev-e34"/>
	<property name="build.base"  value="./"/>
	<property name="results.dir" value="./result"/>
	<property name="test-output" value="./testoutput"/>
    <property name="library-file" value="${eclipse-home}/plugins/org.eclipse.swtbot.eclipse.junit4.headless_${all.buildId}/library.xml"/>

	<property name="build.instrumentation.reports.dir" value="${results.dir}/${plugin-name}/coverage/html" />
	<property name="build.instrumentation.reports.xml.dir" value="${results.dir}/${plugin-name}/coverage/xml" />

	<property name="cobertura.data.file" value="${basedir}/${plugin-name}.ser" />
	
	<target name="init">
		<tstamp />
		<delete>
			<fileset dir="${eclipse-home}" includes="org*.xml" />
		</delete>
		<mkdir dir="${results.dir}/${plugin-name}/coverage"></mkdir>
		<mkdir dir="${test-output}"/>
		<delete dir="${eclipse-home}/workspace" quiet="true"/>
	</target>

	<path id="cobertura.classpath">
		<fileset dir="${build.base}/cobertura-1.9.4.1">
			<include name="cobertura.jar" />
			<include name="lib/**/*.jar" />
		</fileset>
	</path>

	<taskdef classpathref="cobertura.classpath" resource="tasks.properties" />

	<target name="instrument">
		<delete file="${cobertura.data.file}" />

		<cobertura-instrument datafile="${cobertura.data.file}">
			<fileset dir="${eclipse-home}/plugins">
				<include name="${plugin-name}_1.0.0.201007061523.jar" />
			</fileset>
		</cobertura-instrument>
	</target>

    <target name="suite">

    	<condition property="jvmOption" value="-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts -Dnet.sourceforge.cobertura.datafile=${cobertura.data.file} -Xbootclasspath/p:${build.base}/cobertura-1.9.4.1/cobertura.jar">
			<os family="mac" />
		</condition>

		<property name="jvmOption" value="-Dnet.sourceforge.cobertura.datafile=${cobertura.data.file} -Xbootclasspath/p:${build.base}/cobertura-1.9.4.1/cobertura.jar" />


    	<property name="temp-workspace" value="workspace" />
        <delete dir="${temp-workspace}" quiet="true" />

    	<!-- remove junit3 fragment -->
    	<delete dir="${eclipse-home}/plugins/org.eclipse.swtbot.eclipse.junit3.headless_${all.buildId}" />
    	<delete dir="${eclipse-home}/plugins" includes="org.eclipse.swtbot.ant.optional.junit3_${all.buildId}.jar"/>

    	<ant target="swtbot-test" antfile="${library-file}" dir="${eclipse-home}">
            <property name="data-dir" value="${temp-workspace}" />
            <property name="testApplication" value="org.eclipse.ui.ide.workbench" />
            <property name="plugin-name" value="${plugin-name}" />
            <property name="classname" value="${classname}" />
			<property name="os" value="win32"/>
			<property name="ws" value="win32"/>
			<property name="arch" value="x86"/>			
            <property name="vmargs" value=" -Xms128M -Xmx368M -XX:MaxPermSize=256M ${jvmOption}" />
        </ant>
    </target>

	<target name="test-coverage">
		<cobertura-report format="html" destdir="${build.instrumentation.reports.dir}" srcdir="${build.base}/plugins/${plugin-name}/src" datafile="${cobertura.data.file}" />
		<cobertura-report format="xml" destdir="${build.instrumentation.reports.xml.dir}" srcdir="${build.base}/plugins/${plugin-name}/src" datafile="${cobertura.data.file}" />
	</target>

	<target name="run" depends="init, instrument, suite, test-coverage">
        <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
            <property name="includes" value="*.xml" />
            <property name="output-file" value="${plugin-name}.xml" />
        </ant>
    </target>

</project>



and the library file after add junit and ant class path in it:
Quote:

<java fork="true" dir="." timeout="${timeout}" jvm="${jvm}" logError="true" classname="org.eclipse.core.launcher.Main" output="${junit-report-output}/${classname}.txt">
<classpath>
<fileset dir="${eclipse-home}/plugins">
<include name="org.eclipse.equinox.launcher_*.jar" />
</fileset>
<fileset dir=" ${eclipse-sharedlibrary}/plugins/org.apache.ant_1.7.0.v20080 3061910/lib ">
<include name="*.jar" />
</fileset>
<fileset dir="${eclipse-sharedlibrary}/plugins/org.junit4_4.3.1">
<include name="junit.jar" />
</fileset>
</classpath>
<arg line="${launcher-arg-line}" />
<jvmarg line="${jvm-arg-line}" />
<sysproperty key="PLUGIN_PATH" value="${plugin-path}" />
</java>



<?xml version="1.0"?>
<!--


======================================================================
this has been copied from o.e.test plugin with some targets for SWTBot
======================================================================


-->

<project name="Library" default="usage" basedir=".">

	<target name="usage">
		<echo message="Please refer to the testframework.html in org.eclipse.test for instructions on usage." />
	</target>

	<target name="init">
		<!--
			Parameters:
				(Mandatory)
				data-dir		- the directory for Eclipse to write its data
				plugin-name		- the name of the plugin to test
				classname		- the name of the test class

				(Optional - overrides defaults set in script)
				testProduct		- a string containing the product id to test.
				testApplication	- a string containing the application id to test.
				vmargs			- a string containing arguments to pass to the VM.
				extraVMargs		- allows separate setting of VM args from separate caller.
				timeout			- overrides default test timeout value (in milliseconds).
				test-output		- overrides default output file produced from test run.
				plugin-path		- path to root of plug-in
				useEclipseExe	- property setting forces test to launch via eclipse executable.
				junit-report-output - output directory for junit reports produced for specified classname.
		-->

		<tstamp>
			<format property="TIMENOW" pattern="HHmmssSSSS" />
		</tstamp>
		<!--property setting useEclipseExe launches tests using the eclipse executable-->
		<condition property="launchTarget" value="eclipse-test">
			<isset property="useEclipseExe" />
		</condition>
		<!--default launch target for launching tests-->
		<property name="launchTarget" value="java-test" />

		<!-- default product/application to launch -->
		<condition property="testproduct.if.available" value="-product ${testProduct}">
			<isset property="testProduct" />
		</condition>
		<property name="testproduct.if.available" value="" />

		<condition property="testapplication.if.available" value="-testApplication ${testApplication}">
			<isset property="testApplication" />
		</condition>

		<property name="testapplication.if.available" value="" />

		<!--default heap sizes when running performance tests-->
		<condition property="vmargs" value=" -Xms256M -Xmx256M">
			<equals arg1="${test.target}" arg2="performance" />
		</condition>
		<property name="extraVMargs" value="" />
		<property name="plugin-path" value="" />
		<property name="timeout" value="7200000" />
		<property name="test-output" value="${eclipse-home}/${classname}.xml" />
		<property name="junit-report-output" value="${eclipse-home}/results" />
		<mkdir dir="${junit-report-output}" />
	</target>

	<target name="swtbot-test" description="Eclipse application used to launch UI plugin tests." depends="init">
		<antcall target="${launchTarget}">
			<!--param name="application" value="org.eclipse.test.uitestapplication"/-->
			<param name="application" value="org.eclipse.swtbot.eclipse.junit4.headless.swtbottestapplication" />
		</antcall>
	</target>

	<target name="java-test">
		<!--default vm args-->
		<property name="vmargs" value="-Xms256m -Xmx512m" />

		<!-- this argument is needed for macosx -->
		<condition property="jvmOption" value="-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts">
			<os family="mac" />
		</condition>

		<property name="jvmOption" value="" />

		<!--set default jvm to use for testing-->
		<property name="jvm" value="${java.home}/bin/java" />

		<property name="launcher-arg-line" value="
			-application ${application}
			${testproduct.if.available}
			${testapplication.if.available}
			-data ${data-dir}
			formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test-output} formatter=org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter
			-testPluginName ${plugin-name}
			-className ${classname}
			-os ${os}
			-ws ${ws}
			-arch ${arch}
			-consoleLog
			-debug" />
		<property name="jvm-arg-line" value="${vmargs} ${extraVMargs} ${jvmOption}" />

		<echo>======================================</echo>
		<echo>Running swtbot junit tests in ${classname}</echo>
		<echo>Command line args are ${launcher-arg-line}</echo>
		<echo>JVM args are ${jvm-arg-line}</echo>
		<echo>JUnit Result File: ${junit-report-output}/${classname}.xml.</echo>
		<echo>Console output File: ${junit-report-output}/${classname}.txt.</echo>
		<echo>======================================</echo>

		<fail unless="application" message="variable 'application' not defined." />
		<fail unless="data-dir" message="variable 'data-dir' not defined." />
		<fail unless="test-output" message="variable 'test-output' not defined" />
		<fail unless="plugin-name" message="variable 'plugin-name' not defined" />
		<fail unless="classname" message="variable 'classname' not defined" />
		<fail unless="os" message="variable 'os' not defined. os can be one of win32, linux, macosx" />
		<fail unless="ws" message="variable 'ws' not defined. ws can be one of win32, wpf, gtk, carbon, cocoa" />
		<fail unless="arch" message="variable 'arch' not defined. arch can be one of x86, x86_64, ppc" />

		<pathconvert property="foundJunit3" setonempty="false" pathsep=" ">
			<path>
				<fileset dir="${eclipse-home}/plugins" includes="org.eclipse.swtbot.eclipse.junit3.headless*/META-INF/MANIFEST.MF" />
				<fileset dir="${eclipse-home}/plugins" includes="org.eclipse.swtbot.ant.optional.junit3*" />
			</path>
		</pathconvert>

		<fail if="foundJunit3">
			.
			Found org.eclipse.swtbot.eclipse.junit3.headless or org.eclipse.swtbot.ant.optional.junit3 in the plugins directory.
			JUnit 3.x and 4.x don't play well together.
			Please remove org.eclipse.swtbot.eclipse.junit3.headless and org.eclipse.swtbot.ant.optional.junit3 from the plugins dir.
		</fail>

		<java fork="true" dir="." timeout="${timeout}" jvm="${jvm}" logError="true" classname="org.eclipse.core.launcher.Main" output="${junit-report-output}/${classname}.txt">
			<classpath>
				<fileset dir="${eclipse-home}/plugins">
					<include name="org.eclipse.equinox.launcher_*.jar" />
				</fileset>
				<fileset dir="${eclipse-sharedlibrary}/plugins/org.apache.ant_1.7.0.v200803061910/lib">
					<include name="*.jar" />
				</fileset>
				<fileset dir="${eclipse-sharedlibrary}/plugins/org.junit4_4.3.1">
					<include name="junit.jar" />
				</fileset>
			</classpath>
			<arg line="${launcher-arg-line}" />
			<jvmarg line="${jvm-arg-line}" />
			<sysproperty key="PLUGIN_PATH" value="${plugin-path}" />
		</java>

		<echo>======================================</echo>
		<echo>If you see errors above please see the file ${junit-report-output}/${classname}.txt for more information.</echo>
		<echo>Errors are generally caused by missing or incorrect dependencies.</echo>
		<echo>======================================</echo>

		<antcall target="collect-results" />
	</target>

	<target name="collect-results">
		<dirname property="output-dir" file="${test-output}" />
		<basename property="output-file-name" file="${test-output}" />
		<junitreport todir="${junit-report-output}" tofile="${classname}.xml">
			<fileset dir="${output-dir}">
				<include name="${output-file-name}" />
			</fileset>
		</junitreport>

		<style style="${eclipse-home}/plugins/org.eclipse.swtbot.eclipse.junit4.headless_2.0.0.502-dev-e34/JUNIT.XSL" basedir="${junit-report-output}" includes="${classname}.result.xml" destdir="${junit-report-output}" />

		<!--save .log content and *.log content from configuration directory-->
		<concat destfile="${junit-report-output}/${classname}.log">
			<fileset dir="${eclipse-home}" includes="${data-dir}/.metadata/*.log" />
			<fileset dir="${eclipse-home}" includes="configuration/*.log" />
		</concat>
	</target>

	<target name="collect">
		<!--
			This target can be used to aggragate test runs from multiple test suites into a single report.

			Parameters to this target:
			includes		- the names of the files to include
			output-file		- the name of the output file to produce
		-->
		<junitreport todir="." tofile="${output-file}">
			<fileset dir=".">
				<include name="${includes}" />
			</fileset>
		</junitreport>
	</target>
</project>



I think this issue is due to the project of RSA,because RSA put plugins into two part:
IBM
SDP
plugin
-- SWTBot headless jars locate here
feature
SDPShared
plugin
--junit jars
-- ant jars
-- other jars
And many of the plugins are placed in the SDPShared folder, so I wonder it is because the started RSA does not know the SDPShared folder, so it can't load plugins under that folder.
Is there any parameter to specify how to load these plugings? Could any one help me?
Re: how to run SWTBot headless in Rational Software Architect [message #545580 is a reply to message #545252] Thu, 08 July 2010 06:14 Go to previous message
hintcnuie  is currently offline hintcnuie
Messages: 7
Registered: July 2010
Junior Member
ok, since nobody reply, I reply this post myself. ^_^

After debug the code, I fount that the below bold line causes this issue:
	private static JUnitResultFormatter createFormatter(String classname, File outfile) throws BuildException {
		OutputStream out = System.out;

		if (classname == null)
			throw new BuildException("you must specify type or classname"); //$NON-NLS-1$
		Class f = null;
		try {
			[B]f = EclipseTestRunner.class.getClassLoader().loadClass(classname);[/B]
		} catch (ClassNotFoundException e) {
			throw new BuildException(e);
		}



this part process the parameter
formatter=org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter,${test-output} formatter=org.apache.tools.ant.taskdefs.optional.junit.PlainJUnitResultFormatter

in library.xml.
I think when using EclipseTestRunner.class.getclassLoader() to load one of these classes, the classloader can't find that class.
I have open the jvm option -verbose class to see the loaded classes, and no junit classes were found.
If I delete this line from library file and run the build, it will run successfully( Is there any difference in class loader between eclipse and eclipse product? I don't know~~)
and I still wonder if there is difference between the dependence and imported package in the Menifest file, I wonder if change the import packages(now the SWTBot Headless is using) to dependency , this issue would be solved.

Can anyone give me some idea? Thanks very much!
Previous Topic:How to access buttons inside Editor
Next Topic:Got feedback about SWTBot ?
Goto Forum:
  


Current Time: Thu Aug 21 23:56:58 EDT 2014

Powered by FUDForum. Page generated in 0.01584 seconds