<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2011, Obeo

   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License v1.0
   which accompanies this distribution, and is available at
   http://www.eclipse.org/legal/epl-v10.html
-->
<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.eclipse.acceleo</groupId>
    <artifactId>org.eclipse.acceleo-parent</artifactId>
    <version>3.6.5-SNAPSHOT</version>
    <relativePath>../..</relativePath>
  </parent>

  <artifactId>org.eclipse.acceleo.model.tests</artifactId>
  <version>3.6.5-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>

  <name>Acceleo Model Tests</name>

  <build>
    <resources>
      <resource>
        <directory>src</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <includes>
            <include>org/eclipse/acceleo/model/tests/suite/MtlTestSuite.class</include>
          </includes>	
          <useUIHarness>false</useUIHarness>
          <useUIThread>false</useUIThread>
          <testFailureIgnore>true</testFailureIgnore>
        </configuration>
      </plugin>
    </plugins>
  </build> 
</project>