2

メソッドとデータベースの機能を単体テストするために NDbunit を使用しています。NDbunit を機能させるには、まず xml スキーマ ファイル (.xsd) をロードし、次にデータベースに取り込まれるすべてのデータを含む xml ファイルを読み込みます。これが私の xml スキーマ ファイル MessageDS.xsd です。

<xs:schema id="MessageDS"
 xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" 
 xmlns:msprop="urn:schemas-microsoft-com:xml-msprop"
 targetNamespace="http://tempuri.org/MessageDS.xsd"
 elementFormDefault="qualified"
 xmlns="http://tempuri.org/MessageDS.xsd"
 xmlns:mstns="http://tempuri.org/MessageDS.xsd"
 xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="MessageDS" msdata:IsDataSet="true" msdata:UseCurrentLocalexmlns="true" msprop:Generator_MessageDSName="MessageDS" msprop:Generator_DataSetName="MessageDS">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="MESSAGE">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="CREATED_AT" type="xs:dateTime" />
              <xs:element name="SUBJECT" type="xs:string" />
              <xs:element name="MESSAGE" type="xs:string" />
              <xs:element name="FROM" type="xs:string" />
              <xs:element name="TO" type="xs:string" />
              <xs:element name="TO_EMAIL" type="xs:string" />
              <xs:element name="EMAIL_SENT_AT" type="xs:dateTime" />
            </xs:sequence>
            <xs:attribute name="ID" type="xs:int" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>

ここに私のxmlデータファイルMessage.xmlがあります:

<MessageDS xlmns="http://tempuri.org/MessageDS.xsd">
  <MESSAGE ID="1">
    <FROM>Test User 2</FROM>
    <TO>Test User 1</TO>
  <MESSAGE>
</MessageDS>

最初は NDbunit の dll 参照を使用していましたが、最終的にはソース コードをダウンロードし、問題のデバッグを開始しました。xml スキーマ ファイルが読み取られた後、xml ファイルがデータセット (System.Data.DataSet) に正しく読み込まれていないことに気付きました。書き込まれている唯一の xml は次のとおりです。

<MessageDS xmlns="http://tempuri.org/MessageDS.xsd" />

何らかの理由で、MESSAGE オブジェクトが xml ファイルに読み込まれません。これは、xml スキーマ ファイルに従って xml ファイルが適切に作成されていないためか、それとも別の原因によるものかはわかりません。NDbunit のhttps://code.google.com/p/ndbunit/wiki/QuickStartGuideの例に従ってみました。また、NDbunit のテスト ファイルの xml ファイルも調べました。

4

1 に答える 1

3

まず、「xlmns」のスペルが間違っています。 <MessageDS xlmns="http://tempuri.org/MessageDS.xsd">

于 2014-06-03T18:55:19.247 に答える