diff --git a/docker-compose.test.yaml b/docker-compose.test.yaml index bedcc5f..d31390d 100644 --- a/docker-compose.test.yaml +++ b/docker-compose.test.yaml @@ -63,21 +63,35 @@ services: image: api.specs container_name: test-env-api-specs depends_on: - sqlserver: - condition: service_healthy - database.migrations: - condition: service_completed_successfully - database.seed: - condition: service_completed_successfully + database.seed: + condition: service_completed_successfully build: context: ./src/Core dockerfile: API/API.Specs/Dockerfile args: BUILD_CONFIGURATION: Release environment: - ASPNETCORE_ENVIRONMENT: "Test" DOTNET_RUNNING_IN_CONTAINER: "true" - API_BASE_URL: "http://api.core:8080" + DB_CONNECTION_STRING: "${TEST_DB_CONNECTION_STRING}" + volumes: + - ./test-results:/app/test-results + restart: "no" + networks: + - testnet + + repository.tests: + image: repository.tests + container_name: test-env-repository-tests + depends_on: + database.seed: + condition: service_completed_successfully + build: + context: ./src/Core + dockerfile: Repository/Repository.Tests/Dockerfile + args: + BUILD_CONFIGURATION: Release + environment: + DOTNET_RUNNING_IN_CONTAINER: "true" DB_CONNECTION_STRING: "${TEST_DB_CONNECTION_STRING}" volumes: - ./test-results:/app/test-results diff --git a/src/Core/API/API.Specs/API.Specs.csproj b/src/Core/API/API.Specs/API.Specs.csproj index 0791bcb..45ce21a 100644 --- a/src/Core/API/API.Specs/API.Specs.csproj +++ b/src/Core/API/API.Specs/API.Specs.csproj @@ -34,6 +34,5 @@ - diff --git a/src/Core/Repository/Repository.Tests/Dockerfile b/src/Core/Repository/Repository.Tests/Dockerfile new file mode 100644 index 0000000..3978b1e --- /dev/null +++ b/src/Core/Repository/Repository.Tests/Dockerfile @@ -0,0 +1,21 @@ +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["Repository/Repository.Core/Repository.Core.csproj", "Repository/Repository.Core/"] +COPY ["Repository/Repository.Tests/Repository.Tests.csproj", "Repository/Repository.Tests/"] +RUN dotnet restore "Repository/Repository.Tests/Repository.Tests.csproj" +COPY . . +WORKDIR "/src/Repository/Repository.Tests" +RUN dotnet build "./Repository.Tests.csproj" -c $BUILD_CONFIGURATION -o /app/build + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./Repository.Tests.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false + +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS final +WORKDIR /src +# Copy the entire source tree for testing +COPY . . +RUN mkdir -p /app/test-results +WORKDIR /src/Repository/Repository.Tests +ENTRYPOINT ["dotnet", "test", "Repository.Tests.csproj", "-c", "Release", "--logger", "trx;LogFileName=/app/test-results/repository-tests.trx"]