<?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.atl.tests</artifactId>
  <version>0.25.0-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>
  <parent>
    <groupId>org.eclipse.qvtd-tests</groupId>
    <artifactId>org.eclipse.qvtd.tests-folder</artifactId>
    <version>0.25.0-SNAPSHOT</version>
  </parent>
  <build>
    <plugins>
    <!--plugin>
      <groupId>org.eclipse.tycho</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>${maven-surefire-version}</version>
      <configuration>
        <!- -excludes>
          <exclude>**/*.java</exclude>
        </excludes- ->
        <includes>
          <include>org.eclipse.ocl.examples.test.xtext.AllXtextTests.java</include>
        </includes>
        <argLine>-DtestNameSuffix="maven" -ea</argLine>
              <systemProperties>
                <MAVEN_TEST>true</MAVEN_TEST>
              </systemProperties>
        <reportsDirectory>${project.build.directory}/surefire-reports/standalone</reportsDirectory>
      </configuration>
    </plugin-->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <!--debugPort>5005</debugPort-->
          <testClass>org.eclipse.qvtd.atl.tests.AllATLTests</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>