diff --git a/pom.xml b/pom.xml
index 077eec9ab..110a7c0a7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -107,14 +107,6 @@
objenesis
${objenesis.version}
-
- org.springframework.cloud
- spring-cloud-stream
- ${project.version}
- test-jar
- test
- test-binder
-
diff --git a/spring-cloud-stream-binder-test/pom.xml b/spring-cloud-stream-binder-test/pom.xml
index ab0ccf2ab..0c9f09f4d 100644
--- a/spring-cloud-stream-binder-test/pom.xml
+++ b/spring-cloud-stream-binder-test/pom.xml
@@ -44,11 +44,5 @@
spring-boot-starter-test
compile
-
- org.springframework.cloud
- spring-cloud-stream
- test-jar
- test-binder
-
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/AbstractDestination.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/AbstractDestination.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/AbstractDestination.java
rename to spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/AbstractDestination.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/FunctionBindingTestUtils.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/FunctionBindingTestUtils.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/FunctionBindingTestUtils.java
rename to spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/FunctionBindingTestUtils.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/InputDestination.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/InputDestination.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/InputDestination.java
rename to spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/InputDestination.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/OutputDestination.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/OutputDestination.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/OutputDestination.java
rename to spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/OutputDestination.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/SampleStreamApp.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/SampleStreamApp.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/SampleStreamApp.java
rename to spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/SampleStreamApp.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/TestChannelBinder.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/TestChannelBinder.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/TestChannelBinder.java
rename to spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/TestChannelBinder.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/TestChannelBinderConfiguration.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/TestChannelBinderConfiguration.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/TestChannelBinderConfiguration.java
rename to spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/TestChannelBinderConfiguration.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/TestChannelBinderProvisioner.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/TestChannelBinderProvisioner.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/TestChannelBinderProvisioner.java
rename to spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/TestChannelBinderProvisioner.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/package-info.java b/spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/package-info.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/test/package-info.java
rename to spring-cloud-stream-binder-test/src/main/java/org/springframework/cloud/stream/binder/test/package-info.java
diff --git a/spring-cloud-stream-integration-tests/pom.xml b/spring-cloud-stream-integration-tests/pom.xml
index cfa93821f..bd6bf59b9 100644
--- a/spring-cloud-stream-integration-tests/pom.xml
+++ b/spring-cloud-stream-integration-tests/pom.xml
@@ -27,9 +27,8 @@
org.springframework.cloud
- spring-cloud-stream
- test-jar
- test-binder
+ spring-cloud-stream-binder-test
+ test
org.springframework.cloud
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/AbstractMessageChannelBinderTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/AbstractMessageChannelBinderTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/AbstractMessageChannelBinderTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/AbstractMessageChannelBinderTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/BinderAwareChannelResolverTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/BinderAwareChannelResolverTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/BinderAwareChannelResolverTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/BinderAwareChannelResolverTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ErrorBindingTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/ErrorBindingTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ErrorBindingTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/ErrorBindingTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ExtendedPropertiesBinderAwareChannelResolverTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/ExtendedPropertiesBinderAwareChannelResolverTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ExtendedPropertiesBinderAwareChannelResolverTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/ExtendedPropertiesBinderAwareChannelResolverTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/PollableConsumerTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/PollableConsumerTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/PollableConsumerTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/PollableConsumerTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingWithGlobalPropertiesOnlyTest.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/SourceBindingWithGlobalPropertiesOnlyTest.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingWithGlobalPropertiesOnlyTest.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/SourceBindingWithGlobalPropertiesOnlyTest.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/tck/ContentTypeTckTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/tck/ContentTypeTckTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/tck/ContentTypeTckTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/tck/ContentTypeTckTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/tck/ErrorHandlingTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/tck/ErrorHandlingTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/tck/ErrorHandlingTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binder/tck/ErrorHandlingTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binding/BindingServiceTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binding/BindingServiceTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binding/BindingServiceTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/binding/BindingServiceTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/config/BindingHandlerAdviseTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/config/BindingHandlerAdviseTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/config/BindingHandlerAdviseTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/config/BindingHandlerAdviseTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/config/BindingServiceConfigurationTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/config/BindingServiceConfigurationTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/config/BindingServiceConfigurationTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/config/BindingServiceConfigurationTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/config/RetryTemplateTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/config/RetryTemplateTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/config/RetryTemplateTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/config/RetryTemplateTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/DynamicDestinationFunctionTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/DynamicDestinationFunctionTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/DynamicDestinationFunctionTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/DynamicDestinationFunctionTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/FunctionBatchingTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/FunctionBatchingTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/FunctionBatchingTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/FunctionBatchingTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/GreenfieldFunctionEnableBindingTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/GreenfieldFunctionEnableBindingTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/GreenfieldFunctionEnableBindingTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/GreenfieldFunctionEnableBindingTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/ImplicitFunctionBindingTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/ImplicitFunctionBindingTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/ImplicitFunctionBindingTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/ImplicitFunctionBindingTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/MultipleInputOutputFunctionTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/MultipleInputOutputFunctionTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/MultipleInputOutputFunctionTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/MultipleInputOutputFunctionTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/ProcessorToFunctionsSupportTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/ProcessorToFunctionsSupportTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/ProcessorToFunctionsSupportTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/ProcessorToFunctionsSupportTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/RoutingFunctionTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/RoutingFunctionTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/RoutingFunctionTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/RoutingFunctionTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/SourceToFunctionsSupportTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/SourceToFunctionsSupportTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/SourceToFunctionsSupportTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/SourceToFunctionsSupportTests.java
diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/StreamBridgeTests.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/StreamBridgeTests.java
similarity index 100%
rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/function/StreamBridgeTests.java
rename to spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/StreamBridgeTests.java
diff --git a/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/utils/MockBinderConfiguration.java b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/utils/MockBinderConfiguration.java
new file mode 100644
index 000000000..b642052d4
--- /dev/null
+++ b/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/utils/MockBinderConfiguration.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2015-2019 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.cloud.stream.utils;
+
+import org.mockito.Mockito;
+
+import org.springframework.cloud.stream.binder.Binder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author Marius Bogoevici
+ */
+@Configuration
+public class MockBinderConfiguration {
+
+ @Bean
+ public Binder, ?, ?> binder() {
+ return Mockito.mock(Binder.class,
+ Mockito.withSettings().defaultAnswer(Mockito.RETURNS_MOCKS));
+ }
+
+}