nunit 是如何工作的?

发布于 2024-07-04 22:23:17 字数 36 浏览 5 评论 0原文

有人可以向我解释一下它是如何工作的吗?从您选择运行测试开始

Can someone explain me how it works, starting from when you select to run a test

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

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

发布评论

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

评论(4

泪眸﹌ 2024-07-11 22:23:17

当您选择运行测试时,

  • 它将创建该测试方法的父类的实例。
  • 然后,它继续运行标有 TestFixtureSetup 属性的方法(如果存在)(对于测试类一次)。
  • 接下来是标有“Setup”属性的方法(如果存在),则调用该方法(在该类中的每个测试之前一次)
  • 。接下来,将执行您选择的方法(带有“Test”属性)。 所有断言均经过检查。 如果所有断言均有效,则测试将标记为“通过”(GUI 中为绿色),否则标记为“失败”(红色)。 如果弹出任何未使用 ExpectedException 属性指定的异常,则测试将失败。
  • 然后调用带有 Teardown 属性标记的方法(如果存在)。 (清理代码..在类中的每个测试后调用一次)
  • 最后执行标有 TestFixtureTeardown 属性的方法。 (在测试类中的所有测试之后)

简而言之,就是这样。 xUnit 的强大之处在于它的简单性。 这就是您要找的吗?

When you select to run a test,

  • it will create an instance of the parent class of that test method.
  • It then proceeds to run the method marked with TestFixtureSetup attribute if one exists (once for the the test class).
  • Next is the method marked with the Setup attribute is called if one exists (once before every test in that class)
  • Next your selected method (with the Test attribute) is executed. All assertions are checked. If all assertions are valid, the test is marked as Pass (Green in the GUI) else Fail (Red). If any exceptions pop up that were not specified with the ExpectedException attribute, test fails.
  • Then the method marked with the Teardown attribute is called if one exists. (Cleanup code.. called once after every test in the class)
  • Finally method marked with TestFixtureTeardown attribute is executed. (once after all tests in the test class)

That's it in a nutshell. The power of xUnit is its simplicity. Is that what you were looking for ?

面如桃花 2024-07-11 22:23:17

你的意思是它是如何工作的?

您使用 [TestFixture] 定义测试类,使用 [Test] 定义测试。

它只不过是一个测试框架,您仍然需要编写测试和所有这些爵士乐:)

What do you mean how does it work?

You define your test classes with [TestFixture] and your tests with [Test]

It's nothing more than a testing framework, you still have to write the tests and all of that jazz :)

心如荒岛 2024-07-11 22:23:17

1) 有一个要在 .NET 项目中测试的类(例如,MyClass 是类名称,MyProject 是项目名称)

2) 将另一个名为 MyProject.Tests 的项目添加到您的解决方案中

3) 将 MyProject 中的引用添加到MyProject.Tests 以便您可以从测试代码中访问要测试的类

3) 在这个新项目中添加一个名为 MyClass 的新类文件(与 MyProject 中的类相同)

4) 在该类中,添加您的测试代码就像这个页面解释的那样 - http://www.nunit。 org/index.php?p=quickStart&r=2.4.8

5) 编写测试后,构建解决方案。 在 MyProject.Tests 项目文件夹中将出现一个新文件夹 - 'MyProject.Tests\bin\Debug'。 假设您是在调试模式下构建的。 如果您在发布模式下构建,它将是 MyProject.Test\bin\Release。 两者都可以。 在此文件夹中,您将找到一个名为 MyProject.Tests.dll 的 dll 文件

6) 打开 nUnit 测试实用程序,File > 打开,然后导航到 #5 中的文件夹以查找 MyProject.Tests.dll。 打开它。

7) dll 中的测试应在 nUnit 实用程序窗口中列出,您现在可以选择要运行的测试并运行它们。

注意:命名约定不是必需的,这只是我的做法。 如果您有一个名为“MyProject”的项目,并且希望您的测试项目被称为“ArbitraryName”而不是“MyProject.Test”,那么它仍然可以工作......命名约定只是帮助跟踪到底是什么。已测试。

1) Have a class you want to test in a .NET project (MyClass is the class name, MyProject is the project name, for example)

2) Add another project to your solution called MyProject.Tests

3) Add a reference from MyProject to MyProject.Tests so that you can access the class you want to test from the testing code

3) In this new project add a new class file called MyClass (the same as the class in MyProject)

4) In that class, add your testing code like this page explains -- http://www.nunit.org/index.php?p=quickStart&r=2.4.8

5) When you've written your tests, build the solution. In the MyProject.Tests project folder a new folder will appear -- 'MyProject.Tests\bin\Debug'. That's assuming you built in Debug mode. If you built in Release mode it'll be MyProject.Test\bin\Release. Either will work. In this folder, you'll find a dll file called MyProject.Tests.dll

6) Open the nUnit testing utility, File > Open, then navigate to the folder in #5 to find that MyProject.Tests.dll. Open it.

7) The tests from the dll should be listed in the nUnit utility window, and you can now select which tests to run, and run them.

Note: The naming convention isn't necessary, it's just the way I do it. If you have a project called 'MyProject' and you want your testing project to be called 'ArbitraryName' instead of 'MyProject.Test', then it'll still work... the naming convention just helps keep track of what exactly is being tested.

晚雾 2024-07-11 22:23:17

我在工作中使用它,但我不是专家。 以下是 NUnit 文档的链接:http://www. nunit.org/index.php?p=getStarted&r=2.4.8

I use it at work, but I'm not an expert. Here's a link to the NUnit documentation: http://www.nunit.org/index.php?p=getStarted&r=2.4.8

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