簡體   English   中英

pybot在單個情況下不制作測試套件

[英]pybot not making test suite when there is a single case

我使用此命令運行pybot,

pybot --argumentfile a

文件“ a”具有機器人測試用例和變量參數的列表,例如:

-v test_type:SUITE
/home/sk/a.robot
/home/sk/b.robot

現在,測試用例分別是s1-s1-t1和s1-s2-t2。 Output.xml包含,

<suite id="s1" name="A & B">
<suite source="/home/sk/a.robot" id="s1-s1" name="A">
<test id="s1-s1-t1" name="Log Test">...</test>

現在,我刪除了一種情況,文件“ a”只有一種情況,因為

-v test_type:SUITE
/home/sk/a.robot

Output.xml包含,

<suite source="/home/sk/a.robot" id="s1" name="A">
<test id="s1-t1" name="Log Test">
      -----------------</test></suite>

Robot不再在父級套件s1下創建子套件s1,而是運行ID為s1-t1的測試用例。 創建測試套件的這種不一致方式使我很難對output.xml進行DOM解析。

如果使用--argumentfile選項運行,是否有一種方法可以強制機器人始終創建測試套件。

僅運行單個套件時,您將無法使機械手自動添加此特殊的頂級套件。 僅當您運行兩個或多個套件時,Robot才會自動生成此頂級套件。

在機器人框架用戶指南的標題為“ 指定要執行的測試數據 ”的部分中提到了此功能:

也可以一次給多個測試用例文件或目錄提供路徑,並用空格分隔。 在這種情況下,Robot Framework將自動創建頂級測試套件,並且指定的文件和目錄將成為其子測試套件。

注意 :這與參數文件的使用完全無關。 如果將參數直接放在命令行中,將得到完全相同的結果。

重新思考如何運行套件

一種解決方案是啟動測試運行一個文件夾:將所有套件放在一個文件夾中,並始終僅運行該文件夾。 這將始終為您提供一致的頂級套件。 您仍然可以指定單個套件,但是按套件名稱而不是文件名

例如,代替此:

-v test_type:SUITE
/home/sk/a.robot

您可以這樣做:

-v test_type:SUITE
--suite a
/home/sk

這具有一個額外的好處,您可以創建將始終應用的頂級套件初始化文件(例如:/ /home/sk/__init__.robot )。 請參見《機器人框架用戶指南》中的初始化文件

注意:如果/home/sk除了測試套件以外還有其他內容,您可能希望將所有測試移至子文件夾(例如: /home/sk/tests/a.robot /home/sk/tests/b.robot等)

暫無
暫無

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

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