单元测试适配器无法连接到数据源或读取数据。 (未标记为可序列化)

时间:2016-09-09 09:08:05

标签: c# unit-testing tfs mstest

我正在使用VS 2015 Enterprise并试图让我的单元测试直接从测试用例中读取数据,这是在TFS 2013中。目前我在尝试连接数据源时遇到以下错误。

  

结果消息:单元测试适配器无法连接到数据   来源或阅读数据。有关故障排除的更多信息   此错误,请参阅“数据驱动单元测试故障排除”   (http://go.microsoft.com/fwlink/?LinkId=62412)在MSDN Library中。   错误详细信息:键入   'Microsoft.TeamFoundation.TestManagement.Client.TestObjectNotFoundException'   在Assembly'Microsoft.TeamFoundation.TestManagement.Client中,   Version = 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'是   没有标记为可序列化。

我的测试方法看起来像这样。

   <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="TestCaseConnection" connectionString="http://tfsurl/DefaultCollection;projectname" providerName="Microsoft.VisualStudio.TestTools.DataSource.TestCase"/>
  </connectionStrings>
  <microsoft.visualstudio.testtools>
    <dataSources>
      <add name="TfsDataSource" connectionString="TestCaseConnection" dataTableName="103217" dataAccessMethod="Sequential"/>
    </dataSources>
  </microsoft.visualstudio.testtools>

我的配置部分是这样的:

{{1}}

已经搜索了一段时间的解决方案但是没有发现任何与此问题相符的内容,所以非常感谢所有帮助或输入!

1 个答案:

答案 0 :(得分:0)

我已经测试了你的测试方法,这可以工作。您可以按照以下步骤再试一次:

首先,在TFS的测试用例中插入参数actual。查看下面的屏幕截图:

enter image description here

然后,创建一个单元测试项目。检查以下代码:

using Microsoft.VisualStudio.TestTools.UnitTesting;


namespace UnitTestProject1
{
    [TestClass]
    public class UnitTest1
    {
        [DataSource("Microsoft.VisualStudio.TestTools.DataSource.TestCase", "http://tfsurl:8080/tfs/DefaultCollection;teamprojectname", "TestCaseID", DataAccessMethod.Sequential), TestMethod]
        public void Test1()
{
    string expected = "t1";
    string actual = TestContext.DataRow["actual"].ToString();
    Assert.AreEqual(expected, actual);
}
        public TestContext TestContext
        {
            get { return testContextInstance; }
            set { testContextInstance = value; }
        }
        private TestContext testContextInstance;
    }
}

最后,添加.testsettings文件,然后选择此testsettings文件。现在运行测试,你应该得到一个成功的测试。