我目前正在用NUnit / VS2017编写一个Xamarin.Android单元测试应用程序。我正在使用Xamarin提供的NUnit版本,该版本在我创建项目时自动引用,即NUnitLite。它的程序集Xamarin.Android.NUnitLite
似乎是一个框架程序集而不是NuGet程序包,我无法卸载它。
我想知道,我是否坚持使用Xamarin选择放入NUnitLite的NUnit API?我想写
Assert.That(expected, Does.StartWith(actual));
但它看起来像that was added in NUnit v3,而Does
类甚至不存在于NUnitLite中。这是否意味着我必须写
Assert.IsTrue(expected.StartsWith(actual));
代替?
答案 0 :(得分:1)
Xamarin使用原始NUnitLite 0.7或1.0的分叉版本。 (他们实际上开始在版本0.7中使用它,我不确定它是否已更新为1.0。)
NUnitLite(仍可从GitHub上的NUnit项目获得)是一个框架,大致匹配NUnit 2.4 - 2.5的功能。流畅的,基于约束的测试的概念起源于NUnitLite,最终被添加到NUnit本身。
使用NUnit 3,我们消除了“Lite”和“Full”nunit之间的区别。允许NUnitLite与自执行测试程序集一起使用的额外代码被重构为一个单独的包,我们称之为“NUnitLite”。
回想起来,重命名是一个错误。在那里有两个NUnitLites显然令人困惑,其中一个是框架而另一个不是!但是,在这一点上,我不确定该怎么办。
使用Xamarin运行器和测试的替代方法是使用NUnit和NUnitLite 3.x.另一个选择是使用NUnit Xamarin跑步者,但是它还没有完全稳定。