.net - 使用 TFS 2010 运行异步任务单元测试

标签 .net unit-testing tfs async-await

我正在编写一个应用程序,该应用程序是在 VS 2012 中使用 Async 库针对 .NET 4.0 编写的。

我的自动构建在安装了 VS 2012 和 .NET 4.5 的 TFS 2010 构建代理上运行。

我到处都读到,如果你的单元测试是异步的,它必须有 async Task TestMethod() 签名(而不是 async void TestMethod())。

但是,当我这样做时,我的构建服务器会针对该方法给出此错误:

Test method marked with the [TestMethod] attribute must be non-static, public, does not return a value and should not take any parameter. for example: public void Test.Class1.Test().

我已阅读 thisthis这表明如果您有 .testsetting 文件,它可能会导致此错误。但它们都表示它们适用于 TFS/VS 2012 的测试版。

另外,我需要我的测试设置文件来打开代码覆盖率。

这是 TFS 2012 唯一的东西吗? TFS 2010 Build agent 不使用 VS 2012 可以正确运行这些吗?

有没有办法在不升级到 TFS 2012 的情况下使这项工作正常进行?(我们距离升级还有几个月的时间)。

最佳答案

您可以使用类似于我描述的方法 on my blog : 只需将每个单元测试的代码包装在 AsyncContext.Run 中(您可以从我的 AsyncEx NuGet library 中获取 AsyncContext)。

关于.net - 使用 TFS 2010 运行异步任务单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14283322/

相关文章:

c# - TcpClient - 等待数据可用

unit-testing - UUID 版本 5(将哈希转换为 guid)生成算法的测试向量?

python - pytest 断言用于 pyspark 数据帧比较

tfs - VSS 到 TFS 错误 : Retrieving the COM class factory error: 8007007e

c# - 使用 TFS 2015 .NET 客户端库从模板创建构建定义

.net - 仅在我的机器上发生异常 : Method not found: WaitHandle. WaitOne(Int32)

c# - 应用程序立即崩溃并出现 FileNotFoundException

c# - "C# compiler as a service "的状态是什么

c# - UnitTest 你如何组织你的测试文件?

entity-framework - Entity Framework 从源代码管理中删除文件