<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.eclipse.qvtd-tests</groupId>
  <artifactId>org.eclipse.qvtd.cs2as.compiler.tests</artifactId>
  <version>0.27.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>
  <parent>
    <groupId>org.eclipse.qvtd-tests</groupId>
    <artifactId>org.eclipse.qvtd.tests-folder</artifactId>
    <version>0.27.0-SNAPSHOT</version>
  </parent>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <executions>
          <execution>
            <id>default-test</id>
            <phase>test</phase>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <includes>
                <include>**/OCL2QVTiTestCases.java</include>
              </includes>
              <argLine>-DtestNameSuffix="maven" -ea</argLine>
              <systemProperties>
                <MAVEN_TEST>true</MAVEN_TEST>
              </systemProperties>
              <reportsDirectory>${project.build.directory}/surefire-reports/standalone</reportsDirectory>
              <workingDirectory>${project.build.directory}/test-projects</workingDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <configuration>
          <!--debugPort>5005</debugPort-->
          <testClass>org.eclipse.qvtd.cs2as.compiler.tests.OCL2QVTiTestCases</testClass>
          <useUIHarness>true</useUIHarness>
          <useUIThread>true</useUIThread>
          <argLine>-DtestNameSuffix="tycho" -ea</argLine>
          <systemProperties>
            <TYCHO_TEST>true</TYCHO_TEST>
          </systemProperties>
          <reportsDirectory>${project.build.directory}/surefire-reports/plugin</reportsDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>