使用maven过滤的属性文件运行测试

时间:2013-10-16 15:09:11

标签: java maven testng

我希望能够在最近由Java测试使用的某个属性文件中配置值。 这是我的pom.xml

<profiles>
        <profile>
            <id>env-dev</id>
            <activation>
                <property>
                    <name>env</name>
                    <value>dev</value>
                </property>
            </activation>
            <properties>
                <target.env>http://myurl.com</target.env>
            </properties>
        </profile>
    </profiles>
    <build>
        <resources>
            <resource>
                <directory>src/test/java</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
        </plugins>
    </build>

属性文件

targetEnv=${target.env}

当我运行mvn install -Denv=dev时,我可以看到在目标文件夹中,属性文件获得了正确的值,但在测试期间,正在使用占位符,我想在运行测试时使用实际值。 / p>

我做错了什么?

由于

1 个答案:

答案 0 :(得分:0)

  

我做错了什么?

首先,不要使用配置文件在环境之间切换。特别是单元测试永远不应该知道任何环境设置。在这种情况下请删除它。 要过滤测试资源,您应该使用<testResources/> - 标记。