3

我的單元測試的數據源出現問題。我想保留XML中的記錄。據我所知,這是支持,但我不斷收到此錯誤「單元測試適配器無法連接到數據源...」。單元測試適配器無法連接到數據源

我已經建立了我的app.config如下:

<configuration> 
    <configSections> 
    <section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> 
    </configSections> 
    <connectionStrings> 
    <add name="PersonTestData" connectionString="Dsn=XML Files;dbq=PersonTestData.xml;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" /> 
    </connectionStrings> 
    <microsoft.visualstudio.testtools> 
    <dataSources> 
     <add name="PersonTestData" connectionString="PersonTestData" dataTableName="PersonData" dataAccessMethod="Sequential"/> 
    </dataSources> 
    </microsoft.visualstudio.testtools> 
</configuration> 

,我正在使用的代碼是這樣的:

[TestMethod()] 
[DeploymentItem("PersonTestData.xml")] 
[DataSource("PersonTestData")] 
public void CompareToTest() 
{ 
    Person Test = (Person)TestContext.DataRow["Person"]; 
    Int32 result = Main.CompareTo(Test); 
    Assert.IsNotNull(result); 
} 

終於XML文件,它的自我:

<?xml version="1.0" encoding="utf-8" ?> 
<PersonData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Person> 
    <LastName>Jones</LastName> 
    <FirstName>Bill</FirstName> 
    <Age>24</Age> 
    </Person> 
    <Person> 
    <LastName>West</LastName> 
    <FirstName>John</FirstName> 
    <Age>24</Age> 
    </Person> 
    <Person> 
    <LastName>Jones</LastName> 
    <FirstName>Bill</FirstName> 
    <Age>24</Age> 
    </Person> 
</PersonData> 

不確定我在這裏出錯的地方。

+0

你有沒有嘗試給.xml文件的絕對路徑,看看它是否只是一個位置問題? – allen

回答

1

我認爲你不需要ODBC連接字符串來讀取xml文件。簡單地使用下面的DataSource屬性。還有「PersonTestData.xml」屬性。 CopyToOutputDirectory設置爲「CopyAlways」。

[TestClass] 
public class UnitTest1 
{ 
    private TestContext testContextInstance; 
    public TestContext TestContext 
    { 
     get { return testContextInstance; } 
     set { testContextInstance = value; } 
    } 

    [TestMethod] 
    [DeploymentItem("PersonTestData.xml")] 
    [DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", 
       "|DataDirectory|\\PersonTestData.xml", 
       "Person", 
       DataAccessMethod.Sequential)] 
    public void CompareToTest() 
    { 
     var row = TestContext.DataRow; 
     var firstName = row["FirstName"].ToString(); 
     var lastName = row["LastName"].ToString(); 

     //Asserts...     
    } 
} 
+0

你在哪裏,我不需要OBDC的東西。現在效果很好。 – icefenix

相關問題