如何使用Maven / testng向方法发送参数?

时间:2017-01-24 20:44:45

标签: java maven selenium-webdriver cmd testng

如何通过控制台向方法发送参数?

我有一个看起来像这样的方法:

@Test
public void test() throws InterruptedException {
    botClass.Desktop(driver, "same url");       
}

我想通过控制台发送String网址参数。

例如,我希望能够在控制台中键入mvn clean test, www.google.com,程序应该连接到Google并执行测试。 这可能吗?如果是,请就如何实现这一点给我一些建议。

2 个答案:

答案 0 :(得分:1)

这样做:

你的scr / test / resouces中的

1)放置了一个testConfig.properties:

url = ${url}

2)编写测试:

@Test
    public void test() throws Exception{

        String urlParam = null;

        try {

            Properties prop = new Properties();
            InputStream input = null;
            input = getClass().getClassLoader().getResourceAsStream("testConfig.properties");

            prop.load(input);

            urlParam = prop.getProperty("url");

        }catch (Exception e){}

        // use urkParam
    }
你的pom.xml中的

3)添加:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.2</version>
            </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.12.4</version>
                </plugin>
        </plugins>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
    </build>

4)按如下方式运行maven:

mvn clean test resources:testResources -Durl=www.google.com

现在您将获得基于maven param的参数化网址。

答案 1 :(得分:0)

我找到了一种更简单的方法来解决它,而不会在porm文件中进行任何更改。我在班级String valueFromMaven=System.getProperty("URL");中写道,在控制台中我用mvn clean test -DURL=www.google.com开始测试。