<?xml version="1.0" encoding="UTF-8"?>
<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.emfforms.spreadsheet</groupId>
    <artifactId>emfforms-spreadsheet-tests-parent</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <relativePath>../../../releng/spreadsheet/org.eclipse.emfforms.spreadsheet.releng.tests/</relativePath>
  </parent>
	<groupId>org.eclipse.emfforms.spreadsheet</groupId>
	<artifactId>org.eclipse.emfforms.spreadsheet.core.tests</artifactId>
	<version>1.0.0-SNAPSHOT</version>
	<packaging>eclipse-test-plugin</packaging>

	<build>
		<sourceDirectory>src</sourceDirectory>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho-version}</version>
				<configuration>
		          	<useUIHarness>false</useUIHarness>
		          	<useUIThread>false</useUIThread>
		          	<failIfNoTests>false</failIfNoTests>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<configuration>
					<dependency-resolution>
						<extraRequirements>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.emfforms.spreadsheet.feature</id>
								<versionRange>0.0.0</versionRange>
							</requirement>
							<requirement>
								<type>eclipse-feature</type>
								<id>org.eclipse.emf.ecp.emfforms.runtime.feature</id>
								<versionRange>0.0.0</versionRange>
							</requirement>
						</extraRequirements>
					</dependency-resolution>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
