我在VSTS中运行数据驱动单元测试(MSTest)时遇到问题。我的情况如下: 在我的C#解决方案中,我有一个MSTest测试项目,它包含三个包含数据驱动测试方法的测试类。 这些方法用于处理附加的MDF文件作为数据源,但出于可维护性的原因,我在我的解决方案中添加了一个数据库项目,其中包含使用我的测试数据创建和填充数据库的脚本。
test-project还包含一个initialize方法(标有AssemblyInitialize
属性),用于将dacpac从数据库项目部署到LocalDB-instance。对于此部署,我使用Microsoft.SqlServer.DACFx
NuGet包。
数据驱动的测试方法都使用以下连接字符串
Data Source=(LocalDB)\v11.0;Initial Catalog=Enkoni_Validation_Tests;Integrated Security=True;Connect Timeout=30
问题是这个解决方案在本地工作没有任何问题,但是当我在VSTS上触发构建时,大多数测试运行正常,但是一个测试类经常与消息失效
“单元测试适配器无法连接到数据源或读取数据。(...)错误详细信息:无法打开登录请求的数据库”Enkoni_Validation_Tests“。登录失败。”
其他两个类中的测试方法运行没有任何问题。由于所有三个测试类都是同一个项目的一部分,我假设初始化(DacPac的部署)运行没有问题。 有没有人遇到过类似的问题,或者有谁知道如何解决这个问题?
编辑(添加了一些附加信息):构建在托管构建代理上运行,并且始终是失败的相同测试。我已经考虑过可能会对LocalDB数据库建立多少连接存在某种限制,但我找不到任何支持这种理论的信息。由于我的所有测试都按顺序运行,因此我也不希望有很多(甚至多个)连接。