<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2014 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:
     Igor Fedorenko - initial implementation
     Lars Vogel <Lars.Vogel@vogella.com> - Bug 448838
-->
<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>eclipse.platform.ui.tests</artifactId>
    <groupId>eclipse.platform.ui</groupId>
    <version>4.5.1-SNAPSHOT</version>
  </parent>
  <groupId>org.eclipse.ui</groupId>
  <artifactId>org.eclipse.e4.ui.tests</artifactId>
  <version>0.10.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <properties>
  	<!-- TODO Change to false to run tests during Tycho build -->
	<skipTests>true</skipTests>
  </properties>
  <build>
  	<plugins>
  		<plugin>
  			<groupId>org.eclipse.tycho</groupId>
  			<artifactId>tycho-surefire-plugin</artifactId>
  			<version>${tycho.version}</version>
			<configuration>
				 <includes>
            		<include>**/org/eclipse/e4/ui/tests/UIAllTests.java</include>
          		</includes>
				<useUIHarness>true</useUIHarness>
				<useUIThread>true</useUIThread>
			</configuration>
  		</plugin>
  	</plugins>
  </build>
  
</project>
