Search code examples
javamavenjunit-jupiter

Can't access maven profile properties via java


I am trying to configure maven profiles for junit 5 tests. The problem is can't read profile properties. Here is how i set up profiles

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <profile.id>dev</profile.id>
            <RestAssured.TSIDBaseURI>http://url/dev</RestAssured.TSIDBaseURI>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>

    <profile>
        <id>test</id>
         <properties>
            <profile.id>test</profile.id>
            <RestAssured.TSIDBaseURI>http://url/test</RestAssured.TSIDBaseURI>
        </properties>
    </profile>
</profiles>

Then i configured buid resourses

 <build>

    <resources>
        <resource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

Then i created config.properties in src/test/resources directory like this

RestAssured.TSIDBaseURI=${RestAssured.TSIDBaseURI}

Finally i do setup method

@BeforeAll
    @Step(value = "Setup")
    static void setUp() throws IOException {
        Properties loadedProperties = new Properties();
        InputStream resourceAsStream = TSIDBase.class.getClassLoader().getResourceAsStream("config.properties");
        loadedProperties.load(resourceAsStream);
        RestAssured.baseURI = loadedProperties.getProperty("RestAssured.TSIDBaseURI");
        System.out.println("URI = " + RestAssured.baseURI);
    }

Unfortunately i am always getting RestAssured.baseURI =${RestAssured.TSIDBaseURI} value for base URI and i can't see why


Solution

  • I changed build directory from resourses to testResources and it worked

    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </testResource>
    </testResources>