diff --git a/org.eclipse.scout.sdk.core.s.test/src/main/java/org/eclipse/scout/sdk/core/s/testing/IntegrationTest.java b/org.eclipse.scout.sdk.core.s.test/src/main/java/org/eclipse/scout/sdk/core/s/testing/IntegrationTest.java
new file mode 100644
index 0000000..ae4ec15
--- /dev/null
+++ b/org.eclipse.scout.sdk.core.s.test/src/main/java/org/eclipse/scout/sdk/core/s/testing/IntegrationTest.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2020 BSI Business Systems Integration AG.
+ * 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
+ *
+ * Contributors:
+ *     BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.sdk.core.s.testing;
+
+/**
+ * <h3>{@link IntegrationTest}</h3> Marker interface for integration test category
+ *
+ * @since 9.0.0
+ */
+public interface IntegrationTest {
+}
diff --git a/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/project/ScoutProjectNewTest.java b/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/project/ScoutProjectNewTest.java
index 397006f..afbb8d5 100644
--- a/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/project/ScoutProjectNewTest.java
+++ b/org.eclipse.scout.sdk.core.s.test/src/test/java/org/eclipse/scout/sdk/core/s/project/ScoutProjectNewTest.java
@@ -14,8 +14,10 @@
 import java.io.IOException;
 
 import org.eclipse.scout.sdk.core.s.testing.CoreScoutTestingUtils;
+import org.eclipse.scout.sdk.core.s.testing.IntegrationTest;
 import org.eclipse.scout.sdk.core.util.CoreUtils;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * <h3>{@link ScoutProjectNewTest}</h3>
@@ -23,6 +25,7 @@
  * @author Matthias Villiger
  * @since 5.2.0
  */
+@Category(IntegrationTest.class)
 public class ScoutProjectNewTest {
 
   @Test
diff --git a/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceNewOperationTest.java b/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceNewOperationTest.java
index 2b827ca..30aeeff 100644
--- a/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceNewOperationTest.java
+++ b/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceNewOperationTest.java
@@ -34,6 +34,7 @@
 import org.eclipse.scout.sdk.core.s.jaxws.JaxWsModuleNewHelper;
 import org.eclipse.scout.sdk.core.s.jaxws.ParsedWsdl;
 import org.eclipse.scout.sdk.core.s.testing.CoreScoutTestingUtils;
+import org.eclipse.scout.sdk.core.s.testing.IntegrationTest;
 import org.eclipse.scout.sdk.core.util.CoreUtils;
 import org.eclipse.scout.sdk.s2e.IJavaEnvironmentProvider;
 import org.eclipse.scout.sdk.s2e.ScoutSdkCore;
@@ -42,6 +43,7 @@
 import org.eclipse.scout.sdk.s2e.util.ScoutStatus;
 import org.junit.Assert;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.xml.sax.SAXException;
@@ -67,6 +69,7 @@
   }
 
   @Test
+  @Category(IntegrationTest.class)
   public void testNewWebServicesConsumerFirst() throws CoreException, IOException, ParserConfigurationException, SAXException, XPathExpressionException {
     File root = CoreScoutTestingUtils.createTestProject();
     try {
@@ -88,6 +91,7 @@
   }
 
   @Test
+  @Category(IntegrationTest.class)
   public void testNewWebServicesProviderFirst() throws XPathExpressionException, CoreException, ParserConfigurationException, SAXException, IOException {
     File root = CoreScoutTestingUtils.createTestProject();
     try {
diff --git a/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceUpdateOperationTest.java b/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceUpdateOperationTest.java
index 60568921..86c53ec 100644
--- a/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceUpdateOperationTest.java
+++ b/org.eclipse.scout.sdk.s2e.test/src/test/java/org/eclipse/scout/sdk/s2e/operation/jaxws/WebServiceUpdateOperationTest.java
@@ -23,6 +23,7 @@
 import org.eclipse.scout.sdk.core.model.api.IJavaEnvironment;
 import org.eclipse.scout.sdk.core.s.jaxws.JaxWsUtils;
 import org.eclipse.scout.sdk.core.s.testing.CoreScoutTestingUtils;
+import org.eclipse.scout.sdk.core.s.testing.IntegrationTest;
 import org.eclipse.scout.sdk.core.util.CoreUtils;
 import org.eclipse.scout.sdk.s2e.IJavaEnvironmentProvider;
 import org.eclipse.scout.sdk.s2e.operation.IWorkingCopyManager;
@@ -33,6 +34,7 @@
 import org.eclipse.scout.sdk.s2e.testing.mock.FileSystemMockFactory;
 import org.junit.Assert;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.mockito.Mockito;
 import org.xml.sax.SAXException;
 
@@ -42,6 +44,7 @@
  * @author Matthias Villiger
  * @since 5.2.0
  */
+@Category(IntegrationTest.class)
 public class WebServiceUpdateOperationTest {
 
   private static final String PORT_TYPE_NAME_IN_WSDL = "scoutQueryInterface2";
