【发布时间】:2020-08-20 18:23:33
【问题描述】:
我有一个 Azure DevOps 发布管道设置来根据此设置运行我的测试:
我的类文件包含一个包含 4 个测试用例的单元测试,采用以下方式:
[TestCase("test1", "arg1", "arg2")]
[TestCase("test2", "arg1", "arg2")]
[TestCase("test3", "arg1", "arg2")]
[TestCase("test4", "arg1", "arg2")]
public void Test(string name, string arg1, string arg2)
{
TestStuff();
}
当我运行测试时,会创建一个新版本并成功运行测试,但是仅找到 4 个测试中的 3 个。 test2 由于某种原因找不到,只会被跳过。从日志中我可以看到总共找到了 146 个测试,这是准确的,但只有 3 个被“发现”
2020-08-19T23:41:28.3146168Z Number of testcases discovered : 146
2020-08-19T23:41:28.3166614Z ##[debug]PERF: DiscoverTests:AddTestCases: took 0.005 ms
2020-08-19T23:41:28.3290518Z Discovered tests 146 from sources
2020-08-19T23:41:28.3291189Z
=================================================================
2020-08-19T23:41:28.3291959Z ##[debug]DiscoverTests.PerformDiscovery : Test Discovery completed.
2020-08-19T23:41:28.3295732Z ##[debug]PERF WARNING: DiscoverTests.PerformDiscovery: took 11963.8108 ms
2020-08-19T23:41:28.3607538Z [RunStatistics]This execution slice with id '3', received '4' testcases to execute out of which '3' is discovered.
discovered 只有 3 个是什么意思?
如果我尝试自己运行该测试,整个事情都会失败
Microsoft.VisualStudio.TestService.VstestAdapter.TestsNotFoundException:在测试机器上找不到与源过滤条件匹配的测试程序集,或者没有发现与测试过滤条件匹配的测试。验证机器上是否存在测试程序集并且测试过滤条件是否正确。
我已经通过 VS (2019) 验证了这些测试已正确关联到一个测试用例,并且其他 3 个测试运行良好,它只是 1 个由于某种原因找不到的测试。
【问题讨论】:
-
@VitoLiu-MSFT 错误
assembly not found仅在我尝试使用我知道未被“发现”的测试用例运行单个测试时出现,所以我认为这不是问题所在。我真正的问题是找到了程序集,但在测试套件中只发现了 3/4 测试,即使它们都是相关联的。我创建了一个包含 15 个测试用例的不同测试套件,但在那次运行中只发现了 13/15 个测试用例。 -
请检查Test filter criteria字段并确保它与本地VS 2019设置相同。如果我配置过滤器,它将运行与给定表达式匹配的测试,而不是所有测试用例。请检查并在此处分享结果。
-
@VitoLiu-MSFT 我解决了这个问题,但我不是 100% 发生了什么。没有被“发现”的测试用例,在 ADO 中我删除了关联的测试用例,然后在 VS2019 中再次重新关联了测试用例,这似乎已经解决了这个问题。不确定是否存在单元测试和测试用例之间的联系不起作用的任何已知问题,但这似乎是问题所在。我无法再次复制它。
-
您好,感谢您的分享,您可以接受您的回答。在这种情况下,其他人可以直接找到有用的解决方案。
标签: azure-devops nunit azure-pipelines azure-pipelines-release-pipeline azure-pipelines-release-task