<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2015 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, 474544
-->
<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.6.3-SNAPSHOT</version>
  </parent>
  <groupId>org.eclipse.ui</groupId>
  <artifactId>org.eclipse.e4.ui.tests</artifactId>
  <version>0.11.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>
