2015-04-28 4 views
3

Я хочу, чтобы запустить тестовые случаи в зависимости от переменных, передаваемых из Дженкинс , например, выбрать testcases вы хотите запустить: testcaseOne, testcaseTwoPass переменной от Дженкинса к testng.xml

в pom.xml (специалист):

<plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.18.1</version> 
        <configuration> 

         <suiteXmlFiles> 
         <suiteXmlFile>testng.xml</suiteXmlFile> 
         </suiteXmlFiles> 

         <systemPropertyVariables> 
         <chooseCase>${chooseCase}</chooseCase> <--this dont work 
         </systemPropertyVariables> 

         <parallel>tests</parallel> 
         <threadCount>10</threadCount> 

        </configuration> 
</plugin> 

у меня есть два метода TestNG @test:

@Test(groups="caseOne") 
@Test(groups="caseTwo") 

И мой файл testng.xml:

<test name="Test"> 
    <groups> 
    <run> 
     <include name="${chooseCase}"/> 
    </run> 
    </groups> 
    <classes> 
     <class name="AppTest"/> 
     <class name="AppTest2"/> 
    </classes> 
    </test> <!-- Test --> 

Как передать этот параметр в зависимости от того, сколько и сколько тестов я хочу запустить? Возможно, существует совершенно другой способ сделать это?

ответ

3

Вы можете использовать BeanShell сценарий в файле testng.xml http://testng.org/doc/documentation-main.html#beanshell и читать системные переменные в нем, что-то вроде:

<test name="Test"> 
    <method-selectors> 
     <method-selector> 
      <script language="beanshell"> 
       <![CDATA[ 
        String myTestGroup = System.getProperty("chooseCase"); 
        groups.containsKey(myTestGroup); 
       ]]> 
      </script> 
     </method-selector> 
    </method-selectors> 

    <classes> 
     <class name="AppTest"/> 
     <class name="AppTest2"/> 
    </classes> 
</test> 
+0

Вы лучшие. Благодаря! Как насчет того, если я хотел бы сделать это с несколькими вариантами? Могу ли я передать эти переменные в цикле? Допустим, я одновременно запустил testCaseOne и testCaseTwo? Но должен работать только с одним выбором, поэтому, если я добавлю второй селектор методов, он будет иногда пустым (если я выберу только один вариант) –

+0

BeanShell - это «в основном» Java (http://www.beanshell.org/docs. html), поэтому вы можете иметь несколько свойств системы или одну строку с запятыми, а затем разбить ее на массив и использовать для цикла. Вы даже можете иметь методы в '

Смежные вопросы