簡體   English   中英

testng - 在testng.xml中將列表作為參數傳遞

[英]testng - passing list as parmeters in testng.xml

是否可以在testNG參數中傳遞列表。 以下是示例代碼

示例:嘗試傳遞XML中的數字列表。 不確定TestNG是否不支持此功能。 或者我錯過了什么?

 <suite name="Suite" parallel="none">  
     <test name="Test" preserve-order="false">  
         <parameter name="A" value="1"/>   
         <parameter name="B" value="2"/>   
         <parameter name="C" value="3"/>   
         <parameter name="D" value="{4,5}"/>   
         <classes>  
             <class name="TestNGXMLData"/>  
         </classes>  
     </test>  
 </suite>  

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.thoughtworks.selenium.Selenium;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.*;
import com.thoughtworks.selenium.*;

public class TestNGXMLData {

    @Test
    @Parameters(value = { "A", "B", "C", "D" })
    public void xmlDataTest(String A, String B, String C, ArrayList<String> ls) {

        System.out.println("Passing Three parameter to Test " + A + " and " + B + " and " + C);

        Iterator it = ls.iterator();
        while (it.hasNext()) {
            String value = (String) it.next();
        }
    }
}

謝謝,西瓦

您只能傳遞這樣的基本類型,因此您應該將最后一個參數聲明為“String”,然后將“{3,4}”轉換為List。 我建議改用“3 4”,然后用String#split解析它。

如果您想傳遞更復雜的參數並且不想打擾轉換,請切換到使用@DataProvider。

手冊中@Parameter可用於簡單參數。 對於復雜對象,您應該查看@Dataprovider

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM