Unit testing 是否合理/可能使用Nunit';更改测试行为的配置?
我在开发服务器上运行了一套大约20个测试。我想用一种简单的方法切换到Alpha服务器并运行同样的20个测试。但我不想每次都在所有服务器上运行它们。通常我会在Dev上运行测试,直到它们都是绿色的,然后将代码滚动到Alpha,运行测试,等等。在Dev上进行多次迭代,在Alpha上进行一些迭代,然后理论上在堆栈上的每台服务器上运行一次以发布 现在实现这一点的方法是在TestFixture中使用一个变量。这很好,但每次我想改变环境时都需要重建。但我看到一个配置菜单,我认为这将是一个漂亮的使用。为每个环境添加一个配置,指向该配置,运行测试,然后在正确的服务器上运行。这里有一些难闻的硬编码:假设环境的名称必须与目标测试环境的名称匹配。我可以接受 第一个问题:有没有更好的方法?Unit testing 是否合理/可能使用Nunit';更改测试行为的配置?,unit-testing,nunit,Unit Testing,Nunit,我在开发服务器上运行了一套大约20个测试。我想用一种简单的方法切换到Alpha服务器并运行同样的20个测试。但我不想每次都在所有服务器上运行它们。通常我会在Dev上运行测试,直到它们都是绿色的,然后将代码滚动到Alpha,运行测试,等等。在Dev上进行多次迭代,在Alpha上进行一些迭代,然后理论上在堆栈上的每台服务器上运行一次以发布 现在实现这一点的方法是在TestFixture中使用一个变量。这很好,但每次我想改变环境时都需要重建。但我看到一个配置菜单,我认为这将是一个漂亮的使用。为每个环境
第二个问题:这可能吗?我无法找到在TestFixture级别读取这些配置的方法 只需使用标准的.NET配置文件即可。应用程序设置或配置元素。任何dll(包括测试)都可以读取它们。例如,mytest.dll.config对于mytest.dll,我们这样做是为了我们的“组件”或“集成”测试,这些测试具有一些外部依赖性,例如sql server。测试必须知道服务器在哪里
关于单元测试的必要注意事项:请注意,您正在谈论验收测试或集成测试。有价值,但维护成本高且速度慢。您应该只有很少的单元测试,并且应该有更多的单元测试(这不会关心服务器在哪里) 我认为这相当于在TestFixture中更改字符串值。第第二点:我在这里进行了大量的部署问题,这些单元测试是我处理这些问题的方法,直到上级意识到他们在这些部署错误上浪费了多少时间。我的商店(大多数,我想)会考虑重新编译一个不同的构建,并且测试存在验证一个构建。我希望在完全相同的代码上执行完全相同的测试。如果很容易更改它是一个问题,那么一些MS Build社区任务可以更新配置文件(当然,然后执行NUnit)。修改测试夹具中的变量会带来什么变化?为什么测试会关心环境?@Gishu:我所在的商店存在大量的部署问题——我看到了可以改进的地方,但这超出了我的范围。我们经常会部署到食物链上的下一个服务器上,而在这里,新代码不起作用。跟踪问题可能非常耗时,因此这些单元测试是消除中间层/数据层问题的一种方法。当然不是最好的方式,但我会尽我所能。