我的场景如下: 我正在使用 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/