2012-12-14 29 views
0

我一直收到此錯誤測試標籤(在行測試名=「炳搜索-樣本...)在TestNG的XML配置文件中,當Eclipse試圖驗證針對其DTD的XML文件操作正常,並且似乎沒有什麼問題。TestNG的XML配置文件DTD「測試」標籤錯誤

The content of element type "test" must match "(method-selectors?,parameter*,groups?,packages?,classes?)".

XML文件:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 

<suite name="tests" allow-return-values="true" 
    verbose="10"> 
    <test name="Bing-Search-Sample-Test"> 
     <classes> 
      <class name="package.TestFactory" /> 
     </classes> 
     <groups> 
      <run> 
       <include name="sample-tests" /> 
      </run> 
     </groups> 
     <parameter name="testInterfaceXML" value="SearchInterface.xml"></parameter> 
     <parameter name="testSuiteXML" value="SearchTest.xml"></parameter> 
    </test> 
</suite> 

由於XML工作正常,我想知道如果有一個公關使用TestNG DTD或使用eclipse進行XML文件驗證。

+0

當我嘗試驗證此站點上的XML時,我得到了同樣的確切錯誤:http://www.xmlvalidation.com/index.php?id=1&L=0 – djangofan

+0

您是否嘗試重新排序標記答案建議? – atavakoli

+0

是的,我嘗試過。它沒有效果。我意識到我的問題並未完全烘托。我投票結束了我自己的問題。 – djangofan

回答

6

顯然,元素的順序很重要。首先是參數,然後是組,並且類應該是測試元素中的最後一個元素。這是配置文件的格式是否正確:驗證

<suite name="tests" allow-return-values="true" 
    verbose="10"> 
    <test name="Bing-Search-Sample-Test"> 
     <parameter name="testInterfaceXML" value="SearchInterface.xml"></parameter> 
     <parameter name="testSuiteXML" value="SearchTest.xml"></parameter> 
     <groups> 
      <run> 
       <include name="sample-tests" /> 
      </run> 
     </groups> 
     <classes> 
      <class name="package.TestFactory" /> 
     </classes> 
    </test> 
</suite> 
+0

我的testing.xml文件沒有參數或組。我只有'類'子節點。那麼,爲什麼我仍然會得到這個錯誤? – djangofan

+0

也許爲參數和組添加空標籤。 – atavakoli

+0

如果你添加了監聽器,它們應該被添加到測試名稱之上或者僅僅在套件名稱下面,它將起作用。 –

1

一個常見用途是確保軟件知道從輸入到會發生什麼,這樣才能保證每一個有效的文件將被正確處理。並不總是保證每個無效文檔都會引發錯誤 - 有時(如此處)某些耗費的軟件實際上可以處理一些無效的文檔。

您問如果軟件正確處理您的輸入的事實意味着DTD有問題。不一定:定義一個嚴格的排序比允許所有可能的排序變化更容易,特別是當元素的順序不傳達信息時。

3

用簡單的改變之後的第一行:

<?xml version="1.0" encoding="UTF-8"?> 

刪除此行:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 

它不會顯示錯誤。

+0

刪除您提到的那一行適用於我,但刪除它的原因是什麼? – limonik

+0

它也適用於我 - 我認爲testng的版本(如eclipse的testng插件)需要與此處指示的版本兼容。 – Jeff

-2

如果沒有任何效果,請嘗試用任何其他有效的testng.xml文件的內容替換文件的內容。這工作在我的情況。