我有个问题。
#if DEBUG
ca.ConveyancingAttorneyID = "C0B68DC3-C396-4264-880B-1A699C53A8CE";
ca.ConveyancingFirmID = "C0B68DC3-C396-4264-880B-1A699C53A8CE";
#endif
Run Code Online (Sandbox Code Playgroud)
在调试模式下运行时,我们对标识符进行硬编码。在发行版中,显然是动态设置的。
现在,当涉及到对映射代码进行单元测试时,我必须这样做:(最初我只是测试了“发布案例”,然后在调试模式下总是失败了)
#if RELEASE
Guid id = new Guid("1A92CE5A-D956-486B-9B65-0A3630EF0285");
#endif
#if DEBUG
Guid id = new Guid("C0B68DC3-C396-4264-880B-1A699C53A8CE");
#endif
Run Code Online (Sandbox Code Playgroud)
这是不理想的。而且必须记住(并提醒队友)始终在发布中运行单元测试也很麻烦。我们没有持续的集成设置,因此测试仅在本地运行。
有没有一种方法可以强制NUnit / Visual Studio Testrunner / Resharper Testrunner始终以发布模式运行测试?还是有更好的方法来解决此问题,请记住,解决方案中这类“ #if DEBUG”代码块非常丰富。