【发布时间】:2015-04-18 00:48:53
【问题描述】:
我的场景如下: 我正在使用 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 中失败的单元测试,我看不出这是一个“真正的”错误还是“只是”一个特定于平台的问题。相反,我想立即查看问题所在,而不是有几十个我必须单独检查的红色测试。
有人知道怎么做吗?
【问题讨论】:
-
FactAttribute.Skip在 v1 中是virtual(不确定这是否适用于 V2)。您可以使用它来创建FactWhenNotInVsOnWinAttribute(Google for FactWhen,您会在该空间中看到我 7 年前的一些疯狂想法)
标签: c# unit-testing cross-platform xamarin.forms xunit.net