Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 是否合理/可能使用Nunit';更改测试行为的配置?_Unit Testing_Nunit - Fatal编程技术网

Unit testing 是否合理/可能使用Nunit';更改测试行为的配置?

Unit testing 是否合理/可能使用Nunit';更改测试行为的配置?,unit-testing,nunit,Unit Testing,Nunit,我在开发服务器上运行了一套大约20个测试。我想用一种简单的方法切换到Alpha服务器并运行同样的20个测试。但我不想每次都在所有服务器上运行它们。通常我会在Dev上运行测试,直到它们都是绿色的,然后将代码滚动到Alpha,运行测试,等等。在Dev上进行多次迭代,在Alpha上进行一些迭代,然后理论上在堆栈上的每台服务器上运行一次以发布 现在实现这一点的方法是在TestFixture中使用一个变量。这很好,但每次我想改变环境时都需要重建。但我看到一个配置菜单,我认为这将是一个漂亮的使用。为每个环境

我在开发服务器上运行了一套大约20个测试。我想用一种简单的方法切换到Alpha服务器并运行同样的20个测试。但我不想每次都在所有服务器上运行它们。通常我会在Dev上运行测试,直到它们都是绿色的,然后将代码滚动到Alpha,运行测试,等等。在Dev上进行多次迭代,在Alpha上进行一些迭代,然后理论上在堆栈上的每台服务器上运行一次以发布

现在实现这一点的方法是在TestFixture中使用一个变量。这很好,但每次我想改变环境时都需要重建。但我看到一个配置菜单,我认为这将是一个漂亮的使用。为每个环境添加一个配置,指向该配置,运行测试,然后在正确的服务器上运行。这里有一些难闻的硬编码:假设环境的名称必须与目标测试环境的名称匹配。我可以接受

第一个问题:有没有更好的方法?
第二个问题:这可能吗?我无法找到在TestFixture级别读取这些配置的方法

只需使用标准的.NET配置文件即可。应用程序设置或配置元素。任何dll(包括测试)都可以读取它们。例如,mytest.dll.config对于mytest.dll,我们这样做是为了我们的“组件”或“集成”测试,这些测试具有一些外部依赖性,例如sql server。测试必须知道服务器在哪里


关于单元测试的必要注意事项:请注意,您正在谈论验收测试或集成测试。有价值,但维护成本高且速度慢。您应该只有很少的单元测试,并且应该有更多的单元测试(这不会关心服务器在哪里)

我认为这相当于在TestFixture中更改字符串值。第第二点:我在这里进行了大量的部署问题,这些单元测试是我处理这些问题的方法,直到上级意识到他们在这些部署错误上浪费了多少时间。我的商店(大多数,我想)会考虑重新编译一个不同的构建,并且测试存在验证一个构建。我希望在完全相同的代码上执行完全相同的测试。如果很容易更改它是一个问题,那么一些MS Build社区任务可以更新配置文件(当然,然后执行NUnit)。修改测试夹具中的变量会带来什么变化?为什么测试会关心环境?@Gishu:我所在的商店存在大量的部署问题——我看到了可以改进的地方,但这超出了我的范围。我们经常会部署到食物链上的下一个服务器上,而在这里,新代码不起作用。跟踪问题可能非常耗时,因此这些单元测试是消除中间层/数据层问题的一种方法。当然不是最好的方式,但我会尽我所能。