c# - 仅排除特定平台上的单元测试

标签 c# unit-testing cross-platform xamarin.forms xunit.net

我的场景如下: 我正在使用 Xamarin.Forms 开发跨平台移动应用程序。该解决方案的一部分是针对 iOS/Android/WP8 的单元测试项目,并且在每个平台上执行的测试位于共享库中。

测试是使用 xUnit.Net 框架编写的。

现在我有一些测试可以在所有移动平台上成功,但不能在 Windows 上(即,当我在开发过程中从 VS 中运行它们时):

// in a PCL (which is referenced by platform-specific unit test projects)

[Fact]
public void SomeTest()
{
    // succeeds on iOS, Android, and WinPhone
    // fails on Windows (when executed from within Visual Studio)
}

我不想在开发过程中每次都从每个移动平台运行每个测试 - 这将非常耗时。当然,我只是大块地这样做。

结果是我有一堆单元测试在 VS 中失败,并且我无法看出它是“真正的”错误还是“仅”特定于平台的问题。相反,我想立即了解问题所在,而不是进行数十个必须单独检查的红色测试。

有人知道怎么做吗?

最佳答案

你能不能不用traits to achieve this

即添加一个特征,指定测试不应在 Windows 上运行,然后您可以使用您正在使用的任何测试运行程序仅执行在 Visual Studio 中没有此特征的测试。

关于c# - 仅排除特定平台上的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28559554/

相关文章:

c# - 识别手写形状

java - JUnit4 的 Eclipse 插件测试执行

javascript - 使用 Jasmine 对位于不同模块中的两个服务进行单元测试

c++ - const 引用函数参数的地址何时是唯一的?

java - 在不使用 QueryString 的情况下将变量从一个网站页面传递到另一个网站页面

android - 跨平台移动 C++ SDK 通常如何工作?

c# - 将 DataSet 与 DataGrid 一起使用

c# - 在 Entity Framework 6 中的 BulkInsert 期间在上下文中找不到类型

c# - Session 和 Cookie 有什么区别?

c# - 如何将参数传递给 TeamCity Test Runner?