【发布时间】:2014-02-26 09:03:09
【问题描述】:
我有问题。
#if DEBUG
ca.ConveyancingAttorneyID = "C0B68DC3-C396-4264-880B-1A699C53A8CE";
ca.ConveyancingFirmID = "C0B68DC3-C396-4264-880B-1A699C53A8CE";
#endif
当我们在调试模式下运行时,我们对标识符进行硬编码。在发布时,它显然是动态设置的。
现在当涉及到映射代码的单元测试时,我不得不这样做:(最初我只是测试了“发布案例”,然后在调试模式下总是会失败)
#if RELEASE
Guid id = new Guid("1A92CE5A-D956-486B-9B65-0A3630EF0285");
#endif
#if DEBUG
Guid id = new Guid("C0B68DC3-C396-4264-880B-1A699C53A8CE");
#endif
这并不理想。并且必须记住(并提醒队友)始终在发布时运行单元测试也是一件麻烦事。我们没有持续集成设置,因此测试只能在本地运行。
有没有办法强制 NUnit / Visual Studio Testrunner / Resharper Testrunner 总是在发布模式下运行测试?或者有没有更好的方法来解决这个问题,请记住,这种“#if DEBUG”代码块在解决方案中非常丰富。
【问题讨论】:
-
We don't have a continuous integration setup, so the tests are only ever run locally.- 这似乎是根本问题。 -
告诉我。在我加入之前,没有单元测试。
-
@JohanVenter
#if DEBUGAssert.Fail("...")#endif?
标签: c# visual-studio unit-testing nunit