Запуск тестовых случаев SWTBot из командной строки (безголовый режим)
С olleagues
Я наблюдаю проблему при попытке запустить набор тестов SWTBot из командной строки. В качестве стартовой информации я использую эту страницу SWTBot Автоматизировать выполнение теста
Короче говоря, проблема заключается в следующем:
- ANT Script запускается
- Начата инициализация платформы Eclipse
- Инициализация платформы Eclipse завершена
- Платформа Eclipse не может запустить приложение, которое должно быть протестировано
В журнале вижу следующую ошибку
java.lang.RuntimeException: Die Anwendung {0} konnte nicht in der Registry gefunden werden. The verfügbaren Anwendungen sind: com.tsystems.ths.flexprod.rcp.application, org.eclipse.ant.core.antRunner, org.eclipse.equinox.app.error, org.eclipse.help.base.infocenterApplication, org.eclipse.help.base.helpApplication, org.eclipse.help.base.indexTool, org.eclipse.update.core.standaloneUpdate, org.eclipse.update.core.siteOptimizer, com.tsystems.ths.administration.application, Com.tsystems.ths.exporter.application, com.tsystems.ths.flexprod.rdqs.application, com.tsystems.ths.imp.application, com.tsystems.ths.ipp.application, com.tsystems.ths.mdac.application, com.tsystems.ths.monitoring.application, com.tsystems.ths.productionmonitoring.application, com.tsystems.ths.tasklist.application
at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(EclipseAppContainer.java:248)
at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(MainApplicationLauncher.java:29)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
at org.eclipse.core.launcher.Main.main(Main.java:34)
Сообщение на немецком языке. Перевод этого сообщения на английский язык:
Не удалось найти приложение {0} в реестре. Доступные приложения com.tsystems.ths.flexprod.rcp.application, org.eclipse.ant.core.antRunner, org.eclipse.equinox.app.error, org.eclipse.help.base.infocenterApplication, org.eclipse.help.base.helpApplication, org.eclipse.help.base.indexTool, org.eclipse.update.core.standaloneUpdate, org.eclipse.update.core.siteOptimizer, com.tsystems.ths.administration.application, Com.tsystems.ths.exporter.application, com.tsystems.ths.flexprod.rdqs.application, com.tsystems.ths.imp.application, com.tsystems.ths.ipp.application, com.tsystems.ths.mdac.application, com.tsystems..ths.monitoring.application, com.tsystems.ths.productionmonitoring.application, com.tsystems.ths.tasklist.application
Как я правильно понимаю это сообщение. Платформа Eclipse не получает идентификатор приложения, которое должно быть запущено. Также я вижу, что в списке возможных идентификаторов приложения указан правильный идентификатор приложения. Ожидаемое приложение - com.tsystems.ths.flexprod.rcp.application.
Исходный код моего скрипта ant
<project name="testsuite" default="run-swtbot-test" basedir=".">
<property file="${basedir}/build.properties"/>
<property name="temp.workspace" value="${basedir}"/>
<property name="plugin.name" value="org.eclipsecon.swtbot.flexprod.rcpgui.automation"/>
<property name="os" value="win32"/>
<property name="ws" value="win32"/>
<property name="arch" value="x86"/>
<property name="eclipse-home" value="${rcp.gui.home}"/>
<property name="jvmOption" value="-Djava.util.Arrays.useLegacyMergeSort=true -Duser.language=en -Duser.country=EN -Duser.variant=DE -cp ${rcp.gui.home}/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar org.eclipse.core.launcher.Main -wsurl https://xxx.xxx.xxx:XXXX -uurl http://xxx.xxx.xxx.xxxx/" />
<property name="library.file" value="${basedir}/library.xml"/>
<target name="init-suite">
<tstamp/>
<delete>
<fileset dir="${rcp.gui.home}" includes="org*.xml"/>
</delete>
</target>
<target name="run-swtbot-test" depends="init-suite">
<ant target="swtbot-test" antfile="${library.file}" dir="${rcp.gui.home}">
<property name="testApplication" value="com.tsystems.ths.flexprod.rcp.application"/>
<property name="data-dir" value="${temp.workspace}"/>
<property name="plugin-name" value="${plugin.name}"/>
<property name="classname" value="org.eclipsecon.swtbot.flexprod.rcpgui.automation.administration.Create2TemplatesWithuniqueMatno" />
<property name="vmargs" value=" -Xms512M -Xmx512M -XX:MaxPermSize=256M ${jvmOption}" />
</ant>
</target>
<target name="cleanup"/>
В этом свойстве скрипта rcp-gui-home содержит путь к предварительно собранному приложению RCP, которое необходимо протестировать. Мы вынуждены использовать очень старую версию Eclipse Platform, это Indigo (3.7)