我正在编写一个库,并且它的行为在调试或发布时基于模式而有所不同。我想写一个单元测试TestDebugBehaviour
和TestReleaseBehaviour
。是否可以设置测试以在调试/发布模式下运行?如何编写用于调试和发布配置的测试
2
A
回答
2
我想你应该可以用预处理指令来做到这一点。我在下面的例子中使用了xunit;你可能不得不用不同的属性来修饰你的测试方法。
该测试只能在调试模式下执行。
#if DEBUG
[Fact]
public void ThisIsATestThatWillOnlyRunInDebugMode()
{
throw new Exception("I am running in debug mode.");
}
#endif
此测试并不完全在释放模式运行而言,它只是运行在不同的调试模式的任何模式,但足够一般良好。
#if !DEBUG
[Fact]
public void ThisIsATestThatWillNotRunInDebugMode()
{
throw new Exception("I am running in in something other than debug mode.");
}
#endif
-1
不,这是不可能的。如果你想进行这样的比较,只需编译&在两个版本中运行它并比较结果。如果某个方法在发布模式下行为不正确,请使用记录器来追踪该方法的行为并检查出现问题的位置。
+2
#if DEBUG有什么问题? – Mick
相关问题
- 1. 调试和发布配置
- 2. Xcode发布配置测试
- 3. Play Framework - 调试和发布配置?
- 4. 如何编写用于OSGi(集成)测试的Arquillian测试类?
- 5. 我如何编写测试并发性的Tornado单元测试
- 6. 如何执行调试和发布配置构建
- 7. 如何为改造配置调试和发布日志级别?
- 8. 如何根据调试/发布设置不同的qmake配置?
- 9. 分布式测试配置
- 10. 发布和调试
- 11. 如何编写单元测试,测试并发不变
- 12. 如何编写JUnit测试?
- 13. 如何编写测试dataSource.getPooledConnection()
- 14. CPPUnit如何编写测试?
- 15. 调试/发布配置影响编译后的二进制
- 16. 如何编写用于测试“30天过期”之类的测试用例?
- 17. 取决于配置的Windows Phone 8图标(发布,调试)
- 18. 在ant脚本中检测构建配置(调试或发布)
- 19. 如何编写Controller的测试用例?
- 20. 如何编写$ q.all的测试用例
- 21. 如何编写测试用例NUnit的测试keyPairValue
- 22. 配置和测试Laravel任务调度
- 23. 如何测试NavigationService配置?
- 24. 如何编写测试用例Robotium中的抽屉布局
- 25. 编写集成测试,测试数据库,Web服务调用
- 26. 用于BrowserStack测试的TeamCity配置
- 27. 调试和发布配置之间的不同块行为
- 28. Windows Phone中全局变量的调试和发布配置
- 29. 基于测试人员将编写测试用例?
- 30. 发布在发布模式下,出版与调试配置
边注:这通常是坏主意,如果你打算让其他人使用该库 - 在许多情况下/测试和其它假设工作一样只有一种口味开发。如果你的图书馆行为不同,它可能会给用户带来不愉快的惊喜。提供配置可以让你在当前的“调试”和“发布”模式之间进行切换,而无需重新编译(因为副作用可以避免与您自己解决的问题完全相同)。 –
@AlexeiLevenkov它只是在调试模式下运行时引发异常。正如计划。 –