<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2013 Eclipse Foundation and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php
 
  Contributors:
    Thanh Ha (Eclipse Foundation) - initial 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>
  <parent>
    <groupId>org.eclipse.webtools.common</groupId>
    <artifactId>org.eclipse.webtools.common.tests</artifactId>
    <version>3.6.0-SNAPSHOT</version>
  </parent>

  <groupId>org.eclipse.webtools.common</groupId>
  <artifactId>org.eclipse.wst.common.snippets.tests</artifactId>
  <version>1.0.400-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <properties>
    <testSuite>${project.artifactId}</testSuite>
    <testClass>org.eclipse.wst.common.snippets.tests.AllTests</testClass>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <version>${tycho.version}</version>
        <configuration>
          <useUIHarness>true</useUIHarness>
          <useUIThread>true</useUIThread>  
          <dependencies>
            <dependency>
              <type>p2-installable-unit</type>
              <artifactId>org.eclipse.sdk.ide</artifactId>
              <version>0.0.0</version>
            </dependency>
          </dependencies>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
