C#:不使用第三方框架进行单元测试?

发布于 2024-08-14 12:38:39 字数 235 浏览 7 评论 0 原文

单元测试应该在调试模式还是发布模式下运行?

我使用的是 Visual Studio Standard Edition 2005,它没有附带任何单元测试框架。由于我也不想使用任何其他第 3 方单元测试框架,因此我使用 Debug.Assert 来在所有单元测试方法中执行实际测试。但是,Debug.Assert 仅适用于调试模式。

发布模式是否有等效的或者是否有其他替代方案(不使用第 3 方工具)?

Should unit testing be run in debug or release mode?

I am using Visual Studio Standard Edition 2005 which does not come with any unit testing framework. Since I also do not want to make use of any other 3rd party unit testing framework, I used Debug.Assert to perform the actual test inside all unit test methods. However, Debug.Assert only works in debug mode.

Is there an equivalent in release mode or is there any other alternative (without using 3rd party tools)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

甜妞爱困 2024-08-21 12:38:39

您知道可以在任何项目配置中定义 DEBUG 常量吗? (在 Visual Studio 中,项目属性 - 构建 - 定义调试符号)。或者,您可以定义自定义 TEST 常量(项目属性 - 构建 - 条件编译符号),并使用 条件属性

无论如何,我想说使用诸如 NUnit 之类的第三方测试框架是最合适的方法这项任务,但也许您有充分的理由不愿意使用此类工具。

Do you know that you can define the DEBUG constant in any project configuration? (in Visual Studio, Project properties - Build - Define DEBUG symbol). Or you could define a custom TEST constant (Project properties - Build - Conditional compilation symbols), and create test methods that only run when this constant is defined, by using the Conditional attribute.

Anyway I would say that using a 3rd party testing framework such as NUnit is the most appropriate way for this task, but maybe you have solid reasons for not willing to use such tools.

梦毁影碎の 2024-08-21 12:38:39

不要出于单元测试目的而滥用或破坏 Trace.AssertDebug.Assert

使用第三方框架。

Don't abuse or butcher Trace.Assert or Debug.Assert for unit testing purposes.

Use a third-party framework.

一片旧的回忆 2024-08-21 12:38:39

http://blogs.msdn.com/billbar/pages/features-and-behavior-of-load-tests-containing-unit-tests-in-vsts-2008.aspx

至于您的大多数问题,这在某种程度上取决于您使用的单元测试工具。但是,一般来说,您想要的是预处理器指令

//C#

ifndef 调试

//单元测试

结束如果

也许适合你的情况

//C# - 用于 NUnit

如果!调试

[忽略("仅对发布有效")] 

结束如果

http://blogs.msdn.com/billbar/pages/features-and-behavior-of-load-tests-containing-unit-tests-in-vsts-2008.aspx

As for most of your question, it depends somewhat on what unit testing tool your using. However, in general what you want are preprocessor directives

//C#

ifndef DEBUG

//Unit test

end if

Perhaps for your situation

//C# - for NUnit

if !DEBUG

[Ignore("Only valid for release")] 

end if

因为看清所以看轻 2024-08-21 12:38:39

您实际上可以在发布配置中使用 Debug.Assert (或 Trace.Assert)。请参阅 MSDN 上的这篇文章了解更多信息。

就我个人而言,我认为在调试配置上运行单元测试没有问题。单元测试通常针对的是逻辑之类的东西,而不是受发布与调试影响的项目,比如性能。

You can actually use Debug.Assert (or Trace.Assert) in a Release config. Check out this article on MSDN for more information.

Personally I don't see a problem with running unit tests on a Debug config. Unit tests are usually aimed at things like logic, not items that are affected by release vs debug, like performance.

半世晨晓 2024-08-21 12:38:39

使用第 3 方测试框架可以确保您的代码可以获得更好的代码覆盖率。通过编写测试来测试方法,而不是仅仅检查信息,意味着您可以在边缘情况投入生产之前对其进行测试。

Using 3rd Party testing frameworks allow you to make sure that can get better code coverage of your code. By being able to write tests to test a method instead of just checking info along the way means that you can test edge cases before they make it out into production.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文