<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright (c) 2023 Willink Transformations and others.
   
    This program and the accompanying materials
    are made available under the terms of the Eclipse Public License 2.0
    which accompanies this distribution, and is available at
    https://www.eclipse.org/legal/epl-2.0/
   
    SPDX-License-Identifier: EPL-2.0
   
    Contributors:
        E.D.Willink - initial API and implementation
 -->

<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.xtext.qvtimperative.tests</artifactId>
  <version>0.32.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>
  <parent>
    <groupId>org.eclipse.qvtd-tests</groupId>
    <artifactId>org.eclipse.qvtd.tests-folder</artifactId>
    <version>0.32.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>**/AllQVTimperativeTests.java</include>
              </includes>
              <argLine>-DtestNameSuffix="maven" ${argLineTail}</argLine>
              <systemProperties>
                <MAVEN_TEST>true</MAVEN_TEST>
              </systemProperties>
              <reportsDirectory>${project.build.directory}/surefire-reports/standalone</reportsDirectory>
              <workingDirectory>${project.build.directory}/test-reports</workingDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <configuration>
          <!--debugPort>5005</debugPort-->
          <testClass>org.eclipse.qvtd.xtext.qvtimperative.tests.AllQVTimperativeTests</testClass>
          <useUIHarness>true</useUIHarness>
          <useUIThread>true</useUIThread>
          <argLine>-DtestNameSuffix="tycho" ${argLineTail}</argLine>
          <systemProperties>
            <TYCHO_TEST>true</TYCHO_TEST>
          </systemProperties>
          <reportsDirectory>${project.build.directory}/surefire-reports/plugin</reportsDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>