我有一个C#解决方案,我的单元测试项目(和几个生产逻辑项目)。每次我首先编写测试时,我都希望生成的代码能够进入正确的项目。
例如,如果我有一个名为" BusinessLogicA" (程序集和命名空间名称相似)我在单元测试项目中添加了一个refernece,在一些测试类中我有以下代码。
using ThisNameSpaceExist = BusinessLogicA;
....
var instanceOfAlreadyExistingClass = new ThisNameSpaceExist.AlreadyExistingClass();
var instanceOfNewClass = new ThisNameSpaceExist.NewClass();
AlreadyExistingClass存在且NewClass不存在,那么无论何时我尝试自动生成NewClass,它都会在UnitTest项目中创建。
namespace UnitTest.BusinessLogicA {
class NewClass {
重要的是要注意,所有项目都使用相同的解决方案并且我引用项目(而不是构建的dll),因此应该将所有内容设置为在正确的位置创建类(在正确的项目内) )。
有没有办法启用/强制这种行为?
如果没有,任何关于如何以最简单的方式处理它的线索?
答案 0 :(得分:1)
问题是,Resharper / Visual Studio / RandomTool如何知道生成的类应该去哪里?理想情况下,您的单元测试将具有与其测试的类相似的命名空间,例如:
namespace UnitTest.BusinessLogicA
namespace BusinessLogicA
所以请在磁盘上映射到这些位置,例如:
root\UnitTest\BusinessLogicA
root\BusinessLogicA
但是有数百种变体,我可以想到该工具必须足够聪明才能处理或提供一些配置。我不认为这是一个不可能的问题,但我不知道有任何工具可以做到这一点。
为了缓解这一点,我对自动生成的类有一个“手指宏”:
我无法比这更快/更容易,所以当然我喜欢一个只是自动将它移动到正确位置的插件。