0

嗨,我想知道是否可以从属性文件(test.properties)中设置要使用的套件类:

测试 = CorrectTestBackLink.class, CorrectTestSaveToDatabase.class, ErrorTestEnterLetterCalc.class, ErrorTestLeaveBlankCalc.class

或者像这样

test1 = CorrectTestBackLink.class

test2 = CorrectTestSaveToDatabase.class

test3 = ErrorTestEnterLetterCalc.class

test4 = ErrorTestLeaveBlankCalc.class

然后做这样的事情我知道套件类需要类,所以我不知道如何获取列表。

@Suite.SuiteClasses({selectproperties.propertyarray});
// the actual class is empty
public class RunSelected {}

SelectedProperties.class具有类似的内容,以便将其作为数组获取。

public String propertyArray;
public String propertyFileName;
public class SelectedProperties{
            System.in(propertyFileName);
            prop.load(new FileInputStream(propertyFileName));
            propertyArray = prop.getProperty("test");
    }

然后使用以下命令行运行它:

java -cp bin;libs/junit-4.8.1.jar;libs/hamcrest-core-1.3.jar;libs/selenium-java-2.34.0.jar;libs/guava-14.0.jar;libs/json-20080701 .jar;libs/commons-exec-1.1.jar;libs/httpcore-4.2.1.jar;libs/httpclient-4.2.1.jar;libs/commons-logging-1.1.1.jar;libs/mysql-connector -java-5.1.26-bin.jar;libs/cpsuite-1.1.0.jar org.junit.runner.JUnitCore test.RunSelected

但我希望能够在命令中设置propertyFileName,但不确定如何设置,而是以“test.properties”之类的结尾。

我将不胜感激给予的任何帮助。我计划通过 Jenkins 安排和执行这些测试。我知道代码是完全错误的,但这只是为了展示我的想法。

4

1 回答 1

1

我没有使用过 JUnit,所以无法提供 SuiteClasses 的代码。关于从命令行传递属性文件名 - 您可以将其传递给 main() 方法并在 SelectedProperties 中添加逻辑以读取属性文件并拆分“test”属性的逗号分隔值。然后将其作为数组传递给 SuiteClasses。

我实际上使用 TestNG 实现了类似的想法。但我没有从属性文件中传递类,而是从 excel 表中传递。该工作表具有类名和执行标志列。基于执行标志,动态创建并执行 TestNG xml。

于 2013-08-21T09:47:08.803 回答