Update mavne build with a profile for fast integration tests
- Add new Maven profile 'ci-fast-integration-tests' for running selective ITs - Remove redundant vector store skip flags from properties section - Update maven-failsafe-plugin to version 3.5.2 - Configure test exclusions for various components: - Most model integration tests (Anthropic and OpenAI) - Most vector store tests (except PgVector and Chroma) - Most auto-configuration tests - All test containers and docker compose tests - AI evaluation tests - Convert the docker-compose tests into ITs - Convert the testcontainers tests into ITs - Updated README.md - Explain the new profile and also the new integration tests repo - Describe ways to run integration tests for specific modules - Add badge for https://github.com/spring-projects/spring-ai-integration-tests
This commit is contained in:
committed by
Mark Pollack
parent
979de19162
commit
d030b82b59
@@ -176,25 +176,4 @@
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-failsafe-plugin</artifactId>
|
||||
<version>${maven-failsafe-plugin.version}</version>
|
||||
<configuration>
|
||||
<skipITs>${skip.docker-compose}</skipITs>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>integration-test</goal>
|
||||
<goal>verify</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
||||
@@ -20,13 +20,13 @@ import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
|
||||
import org.springframework.ai.autoconfigure.vectorstore.chroma.ChromaConnectionDetails;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class ChromaDockerComposeConnectionDetailsFactoryTests extends AbstractDockerComposeIntegrationTests {
|
||||
class ChromaDockerComposeConnectionDetailsFactoryIT extends AbstractDockerComposeIT {
|
||||
|
||||
ChromaDockerComposeConnectionDetailsFactoryTests() {
|
||||
ChromaDockerComposeConnectionDetailsFactoryIT() {
|
||||
super("chroma-compose.yaml", DockerImageName.parse("chromadb/chroma"));
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
|
||||
import org.springframework.ai.autoconfigure.vectorstore.chroma.ChromaConnectionDetails;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class ChromaWithTokenDockerComposeConnectionDetailsFactoryTests extends AbstractDockerComposeIntegrationTests {
|
||||
class ChromaWithTokenDockerComposeConnectionDetailsFactoryIT extends AbstractDockerComposeIT {
|
||||
|
||||
ChromaWithTokenDockerComposeConnectionDetailsFactoryTests() {
|
||||
ChromaWithTokenDockerComposeConnectionDetailsFactoryIT() {
|
||||
super("chroma-with-token-compose.yaml", DockerImageName.parse("chromadb/chroma"));
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
|
||||
import org.springframework.boot.autoconfigure.mongo.MongoConnectionDetails;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class MongoDbAtlasLocalDockerComposeConnectionDetailsFactoryTests extends AbstractDockerComposeIntegrationTests {
|
||||
class MongoDbAtlasLocalDockerComposeConnectionDetailsFactoryIT extends AbstractDockerComposeIT {
|
||||
|
||||
protected MongoDbAtlasLocalDockerComposeConnectionDetailsFactoryTests() {
|
||||
protected MongoDbAtlasLocalDockerComposeConnectionDetailsFactoryIT() {
|
||||
super("mongo-compose.yaml", DockerImageName.parse("mongodb/mongodb-atlas-local"));
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
|
||||
import org.springframework.ai.autoconfigure.ollama.OllamaConnectionDetails;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class OllamaDockerComposeConnectionDetailsFactoryTests extends AbstractDockerComposeIntegrationTests {
|
||||
class OllamaDockerComposeConnectionDetailsFactoryIT extends AbstractDockerComposeIT {
|
||||
|
||||
OllamaDockerComposeConnectionDetailsFactoryTests() {
|
||||
OllamaDockerComposeConnectionDetailsFactoryIT() {
|
||||
super("ollama-compose.yaml", DockerImageName.parse("ollama/ollama"));
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
|
||||
import org.springframework.ai.autoconfigure.vectorstore.opensearch.AwsOpenSearchConnectionDetails;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class AwsOpenSearchDockerComposeConnectionDetailsFactoryTests extends AbstractDockerComposeIntegrationTests {
|
||||
class AwsOpenSearchDockerComposeConnectionDetailsFactoryIT extends AbstractDockerComposeIT {
|
||||
|
||||
AwsOpenSearchDockerComposeConnectionDetailsFactoryTests() {
|
||||
AwsOpenSearchDockerComposeConnectionDetailsFactoryIT() {
|
||||
super("localstack-compose.yaml", DockerImageName.parse("localstack/localstack:3.5.0"));
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
|
||||
import org.springframework.ai.autoconfigure.vectorstore.opensearch.OpenSearchConnectionDetails;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class OpenSearchDockerComposeConnectionDetailsFactoryTests extends AbstractDockerComposeIntegrationTests {
|
||||
class OpenSearchDockerComposeConnectionDetailsFactoryIT extends AbstractDockerComposeIT {
|
||||
|
||||
OpenSearchDockerComposeConnectionDetailsFactoryTests() {
|
||||
OpenSearchDockerComposeConnectionDetailsFactoryIT() {
|
||||
super("opensearch-compose.yaml", DockerImageName.parse("opensearchproject/opensearch"));
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
|
||||
import org.springframework.ai.autoconfigure.vectorstore.qdrant.QdrantConnectionDetails;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class QdrantDockerComposeConnectionDetailsFactoryTests extends AbstractDockerComposeIntegrationTests {
|
||||
class QdrantDockerComposeConnectionDetailsFactoryIT extends AbstractDockerComposeIT {
|
||||
|
||||
QdrantDockerComposeConnectionDetailsFactoryTests() {
|
||||
QdrantDockerComposeConnectionDetailsFactoryIT() {
|
||||
super("qdrant-compose.yaml", DockerImageName.parse("qdrant/qdrant"));
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
|
||||
import org.springframework.ai.autoconfigure.vectorstore.typesense.TypesenseConnectionDetails;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class TypesenseDockerComposeConnectionDetailsFactoryTests extends AbstractDockerComposeIntegrationTests {
|
||||
class TypesenseDockerComposeConnectionDetailsFactoryIT extends AbstractDockerComposeIT {
|
||||
|
||||
TypesenseDockerComposeConnectionDetailsFactoryTests() {
|
||||
TypesenseDockerComposeConnectionDetailsFactoryIT() {
|
||||
super("typesense-compose.yaml", DockerImageName.parse("typesense/typesense:26.0"));
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ import org.junit.jupiter.api.Test;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
|
||||
import org.springframework.ai.autoconfigure.vectorstore.weaviate.WeaviateConnectionDetails;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIntegrationTests;
|
||||
import org.springframework.boot.docker.compose.service.connection.test.AbstractDockerComposeIT;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class WeaviateDockerComposeConnectionDetailsFactoryTests extends AbstractDockerComposeIntegrationTests {
|
||||
class WeaviateDockerComposeConnectionDetailsFactoryIT extends AbstractDockerComposeIT {
|
||||
|
||||
WeaviateDockerComposeConnectionDetailsFactoryTests() {
|
||||
WeaviateDockerComposeConnectionDetailsFactoryIT() {
|
||||
super("weaviate-compose.yaml", DockerImageName.parse("semitechnologies/weaviate"));
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ import static org.assertj.core.api.Assertions.fail;
|
||||
*/
|
||||
@DisabledIfProcessUnavailable({ "docker", "version" })
|
||||
@DisabledIfProcessUnavailable({ "docker", "compose" })
|
||||
public abstract class AbstractDockerComposeIntegrationTests {
|
||||
public abstract class AbstractDockerComposeIT {
|
||||
|
||||
@TempDir
|
||||
private static Path tempDir;
|
||||
@@ -60,7 +60,7 @@ public abstract class AbstractDockerComposeIntegrationTests {
|
||||
|
||||
private final DockerImageName dockerImageName;
|
||||
|
||||
protected AbstractDockerComposeIntegrationTests(String composeResource, DockerImageName dockerImageName) {
|
||||
protected AbstractDockerComposeIT(String composeResource, DockerImageName dockerImageName) {
|
||||
this.composeResource = new ClassPathResource(composeResource, getClass());
|
||||
this.dockerImageName = dockerImageName;
|
||||
}
|
||||
Reference in New Issue
Block a user