mavenuser-interfaceeclipse-rcptychoswtbot

Maven/Tycho SWTBot Eclipse RCP


I would like to run my UI Tests SWTBot with Maven/Tycho and Tycho can't get my .product. This my log:

!ENTRY org.eclipse.equinox.app 0 0 2017-12-02 16:36:32.573
!MESSAGE Product tychodemo.bundle.product could not be found.
***WARNING: Display must be created on main thread due to Cocoa restrictions.

!ENTRY org.eclipse.osgi 4 0 2017-12-02 16:36:32.760
!MESSAGE Application error
!STACK 1
...

enter image description here

This is my pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>tychodemo.swtbot.test</artifactId>
  <packaging>eclipse-test-plugin</packaging>
  <parent>
    <groupId>tychodemo</groupId>
    <artifactId>tychodemo.parent</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <relativePath>../tychodemo.parent</relativePath>
  </parent>
  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <useUIHarness>true</useUIHarness>
          <useUIThread>false</useUIThread>
          <!-- use our product and application to launch the tests -->
          <product>tychodemo.bundle.product</product>
          <application>org.eclipse.e4.ui.workbench.swt.E4Application</application>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

Is it the right place to put my .product?

Thank you, Antoine


Solution

  • The error seems to be indicative of an issue on the MacOS platform.

    To launch the tests on a mac you need to specify the -XstartOnFirstThread command line option in a separate profile:

    <profile>
      <id>macosx</id>
      <activation>
        <os>
          <name>macosx</name>
          <family>mac</family>
        </os>
      </activation>
      <properties>
        <ui.test.vmargs>-Xmx512m -XX:MaxPermSize=256m -XstartOnFirstThread</ui.test.vmargs>
      </properties>
    </profile>