在Properties文件中设置SuiteClassess并在命令行中设置indtentify属性文件

时间:2013-08-21 08:50:51

标签: java selenium command-line junit selenium-webdriver

您好我想知道是否可以从属性文件中设置要使用的套件类( 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安排和执行这些测试。我知道代码是完全错误的,但它只是为了展示我的想法。

1 个答案:

答案 0 :(得分:1)

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

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