Skip to content

Compose Dev Services testing - use top-level name attribute if specified in the Compose file #49031

@rsvoboda

Description

@rsvoboda

Description

Currently, a generated project name in the format quarkus-devservices-<application-name>-<random-suffix> is used by default to ensure isolation between test runs and running dev mode services. Details in https://quarkus.io/guides/compose-dev-services#compose-dev-services-used-for-tests

But when I'm using a Compose file with name attribute specified, it's a bit confusing. I would expect that to be also used for testing, e.g. in the format <compose-name>-<random-suffix>

This is present in the logs when running mvn clean verify:

... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Network quarkus-devservices-code-with-quarkus-vpnfhj_default  Creating
... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Network quarkus-devservices-code-with-quarkus-vpnfhj_default  Created
... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Container quarkus-devservices-code-with-quarkus-vpnfhj-db-1  Creating
... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Container quarkus-devservices-code-with-quarkus-vpnfhj-db-1  Created
... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Container quarkus-devservices-code-with-quarkus-vpnfhj-db-1  Starting
... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Container quarkus-devservices-code-with-quarkus-vpnfhj-db-1  Started

As name: test-project is specified in the Compose file I would expect:

... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Network  test-project-vpnfhj_default  Creating
... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Network  test-project-vpnfhj_default  Created
... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Container  test-project-vpnfhj-db-1  Creating
... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Container  test-project-vpnfhj-db-1  Created
... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Container  test-project-vpnfhj-db-1  Starting
... INFO  [io.qua.dev.dep.com.ComposeRunner] (Process stdout)  Container  test-project-vpnfhj-db-1  Started

Implementation ideas

Adjust following part in ComposeDevServicesProcessor to reflect composeFiles.getProjectName()

        if (launchMode.getLaunchMode() != LaunchMode.DEVELOPMENT && !cfg.reuseProjectForTests) {
            projectName = projectName + "-" + RandomStringUtils.insecure().nextAlphabetic(6).toLowerCase();
        }

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions