您好我想知道是否可以从属性文件中设置要使用的套件类( test.properties ):
test = 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;库/公地EXEC-1.1.jar;库/的HttpCore-4.2.1.jar;库/ HttpClient的-4.2.1.jar;库/共享记录-1.1.1.jar;库/ mysql-connector-java-5.1.26-bin.jar; libs / cpsuite-1.1.0.jar org.junit.runner.JUnitCore test.RunSelected
但是我希望能够在命令中设置 propertyFileName ,不确定如何,但是以“test.properties”之类的结尾。
我将不胜感激任何帮助。我计划通过Jenkins安排和执行这些测试。我知道代码是完全错误的,但它只是为了展示我的想法。
答案 0 :(得分:1)
我没有使用过JUnit,因此无法提供SuiteClasses的代码。关于从命令行传递属性文件名 - 您可以将其传递给main()方法,并在SelectedProperties中添加逻辑以读取属性文件并拆分“test”属性的逗号分隔值。然后将其作为数组传递给SuiteClasses。
我实际上使用TestNG实现了类似的想法。但是,不是从属性文件传递类,而是从excel表中执行。该工作表具有类名和执行标志列。基于执行标志,动态创建TestNG xml并执行。