2

Eclipse がその DTD に対して XML を検証しようとしているときに、TestNG XML 構成ファイルのテストタグ (行test name="Bing-Search-Sample...)に対して常にこのエラーが発生します。ファイルは正常に動作しているようです。問題がないこと:

要素タイプ「test」の内容は、「(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 ファイルの検証に問題があるのか​​疑問に思っています。

4

6 に答える 6

16

どうやら要素の順序は重要です。最初にパラメーター、次にグループ、そしてクラスがテスト要素の最後の要素になります。これが構成ファイルの正しい形式です。

<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>
于 2012-12-15T00:08:27.153 に答える
8

最初の行を次のように変更するだけです。

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

次の行を削除します。

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

エラーは表示されません。

于 2016-10-12T19:02:43.243 に答える
1

検証の一般的な用途の 1 つは、すべての有効なドキュメントが正しく処理されることを保証するために、入力から何を期待するかをソフトウェアが認識していることを確認することです。すべての無効なドキュメントでエラーが発生するという保証は常にありません。(ここのように) 一部の消費ソフトウェアが、実際には無効なドキュメントを処理できる場合があります。

ソフトウェアが入力を正しく処理するという事実は、DTD に問題があることを意味するかどうかを尋ねます。必ずしもそうではありません: 特に要素の順序が情報を伝えない場合は、順序付けのすべての可能なバリエーションを許可するよりも、厳密な順序付けを定義する方が簡単な場合がよくあります。

于 2012-12-15T00:51:02.700 に答える
0

また、testng.xml が正しくフォーマットされているか、つまり不要な文字が含まれていないかを確認してください。私の場合、誤って 2 つの閉じ括弧を一緒にして、testng.xml を実行しようとしました。同じエラーがスローされます。

于 2018-08-03T06:48:15.053 に答える
-2

何も機能しない場合は、ファイルの内容を他の有効な testng.xml ファイルの内容に置き換えてみてください。これは私の場合はうまくいきました。

于 2016-10-17T17:49:56.570 に答える