我们的解决方案包含一系列用于测试的项目。其中一个项目包含一组测试所需的文件。这些文件是每次调用API路由时都会进行验证的模式。当然,测试会调用一个或多个API路由。
解决方案有.testsettings
个文件。此文件已启用部署,并指定需要部署这些模式。此外,每个模式文件都设置为“始终复制”。也。 .testsettings
文件位于解决方案的解决方案项目下。
问题是.testsettings
文件只是偶尔被尊重。有时会复制文件;有时他们不是。当他们不复制时,我们可以执行以下操作来制作它:
.testsettings
文件这通常至少有效一次。但不可避免地,它会停止工作,文件也不会再次部署。
请注意,当您进入测试时 - > “测试设置”菜单,我们当前的.testsettings
文件始终已经过检查。因此,选择新的.testsettings
文件只是意味着选择用户界面已经说过的文件。
我们考虑过DeploymentItem
路线,但由于两个原因,围绕代码维护,这是不切实际的。
DeploymentItem
只能放在个别测试中。通过数百次测试,我们将无处不在。它成了代码维护的噩梦。我想把它放在全局TestInitialize
方法上,但是每次运行测试时都会重新复制文件,这似乎是不必要的。更不用说我必须在方法上放置几十个DeploymentItem
属性,并且每次添加新模式时我们都需要保持最新。更好的解决方案是将文件复制一次,然后在需要的时候让代码查看模式的公共池。
我还考虑用.runsettings替换.testsettings,但它似乎没有XML中的DeploymentEnabled
节点,并且该选项存在的地方再次特定于{{ 1}}。
有没有人有解决方案,或者有人知道它是否是一个已知错误?模式验证发生在幕后 - 个别测试作者不必明确地称之为 - 如果它没有发生它也不会失败(我们不会总是这样做)每个API调用都可以使用模式,因此我们不希望在测试失败的情况下(如果是这样)。结果,通常很难立即确定是否发生了验证。因此,我们有时会在架构实际破坏的测试中获得错误传递,因为DeploymentEnabled
文件实际上没有像我们设置的那样部署文件。
答案 0 :(得分:0)
所以我发现了问题:显然这个问题已在Visual Studio 2015 Update 3中修复。我们使用的是Update 2.一旦我们得到了新的更新,这个问题就消失了。