如何在NUnit

时间:2018-01-11 22:24:54

标签: unit-testing visual-studio-2017 nunit

我是新的NUnit用户,使用2017年Visual Studio社区下的NUnit 3.9。我在宠物开源图书馆项目中使用它,一旦我掌握了它,它就会很顺利它

图书馆通过文件化的API访问公共政府网站。我的大部分测试都使用本地数据,因此我有一个稳定的床可供比较,所以我可以测试而不必每次都去网站。

我想设置它以便正常情况下,服务器上的测试不会运行。我在调整代码时反复运行测试,而且只是出于礼貌,不想在服务器上敲击。此外,即使远程系统停机或我无法访问互联网,我也希望能够进行测试。

有没有办法对我的测试进行分组或标记,以便通常只运行使用本地数据的那些,但是在必要时,我仍然可以运行那些运行服务器访问的那些?指定"运行这些"或者"排除这些"会好的。

我已将测试分为两个不同的类,UnitTestOffline.cs和UnitTestOnline.cs,并希望我能以某种方式逐个运行测试,但还没有找到这样做的方法。

2 个答案:

答案 0 :(得分:2)

如果你具体说明如何运行测试,你会得到更好的答案,因为有很多方法可以做到。既然你提到VS2017,我会假设你正在使用NUnit 3 VS Adapter,但是如果你正在使用其他方法,请告诉我们。

在VS适配器中,使用下拉列表按类显示测试。右键单击要运行测试的类并运行它们。

如果您决定使用CategoryAttribute对测试进行分类,则可以在Visual Studio中通过“trait”显示测试。和以前一样,右键单击要运行测试的组并运行它们。

如果您进行了大量测试,您可能希望将单元测试放在一个程序集中,将集成测试放在另一个程序集中。在这种情况下,按项目显示测试,右键单击所需的项目并运行它们。

所有这些也可以使用nunit3-console命令行运行器来完成。要按类或类别进行选择,请使用--where选项。要按程序集进行选择,只需在命令行中输入所需程序集的名称即可。

答案 1 :(得分:1)

好像你想要categorize your tests(单元测试,集成测试......)并且只运行单元测试...你可以使用[Category]

在nunit GUI中,您可以/之后包含/排除类别,并且只运行您想要的类别。

可能Visual Studio的过滤可以正常工作。

尝试查看其中一个解决方案suggested here以及