问题标签 [nunit-3.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - NUnit 3:OneTimeSetUp 不会触发
在 NUnit 3 中,他们将属性“TestFixtureSetUp”替换为“OneTimeSetUp”。但是,它实际上似乎不起作用,除非我是一个完全的白痴。
这是我下面的代码:
测试将开始,但它永远不会进入 Init(),因此 _diskService 为空。我在这里做错了什么,或者这可能是一个错误?
c# - 如何在 nunit 中使用自定义测试操作属性访问 Fixture 属性?
我有一些自定义属性用于使用 nunit 2.6 编写测试。我最近(通过 Nuget)升级到 nunit 3.0。升级后,我所有的操作属性都无法构建。我看到那TestDetails
已经消失了,这就是为什么我的属性不会建立的原因。
阅读此处的文档http://nunit.org/index.php?p=actionAttributes&r=3.0,看起来它们应该仍然可以工作。使用该文档页面上提供的 ConsoleActionAttribute 时出现的错误是:
各种其他属性会引发类似的错误,例如
在 Action Attribute 的 Before/After 方法中访问测试的 Fixture 属性的正确方法是什么?
nunit - 如何确认有多少测试在并行运行?
我在 16 核机器上运行单元测试。当不使用并行化参数时,我看不到经过时间的任何差异,--workers=1
并且--workers=32
. 我想确认 NUnit 确实在运行预期数量的同时测试,这样我就不会花时间在我的测试代码中寻找一个不存在的问题。
我在公共基类上有[Parallelizable]
(默认范围, )。ParallelScope.Self
它未在任何其他类或方法上定义。我正在nunit3-console
通过 Jenkins 和我的本地命令行使用。
有没有办法告诉测试是并行运行的?NUnit 报告了正确的工作线程数,但没有报告说(例如)每个线程中运行了多少测试。
我可以记录每个测试的开始和结束时间,然后手动检查是否存在合理数量的重叠;有没有更简单、更可重复的方法来获得我想要的东西?
unit-testing - 如何使用 NUnit 3 在 Atlassian Bamboo 中运行 NUnit Runner?
我在 Atlassian Bamboo(最新版本)中使用 NUnit Runner 和 NUnit 2,但升级到 NUnit 3 后它不再工作。NUnit 3 中的命令行似乎发生了一些变化。有人知道如何使 NUnit 3 在 Atlassian Bamboo 中工作吗?或者 NUnit 开发人员是否可以考虑为这一重大变化提供向后兼容性?
我收到以下错误:
无效参数:-xml=TestResults-Rev_02f5436a0a70cd539bd3b77218fb48cbe3262954-Build_12.xml
c# - 将参数化 Webdriver 测试升级到 Nunit 3.0
我想找到一种方法来重复失败的 webdriver 测试并偶然发现了这个http://answered.site/-because-these-are-webdriver-tests-and-not-standard-unit-tests-tests/3612952/。这将我带到 Nunit 主页,发现他们发布了 3.0。我升级了框架(从 2.4 到 3),现在我的解决方案没有找到任何测试。这是我的设置
现在我正在查看“重大更改”的 3.0 文档,我看到他们贬低了 [TestFixtureTearDown] 和 [TestFixtureSetUp]。我将这些点更改为现在的 [OneTimeSetUp] 和 [OneTimeTearDown] 属性,但是现在当我运行测试时,找不到任何测试。
c# - Selenium GRID 2 + NUnit 3 选项可并行运行测试
我决定从当前的解决方案(几年前我们团队使用NDistribUnit修改过的 NUnit,它在 VirtualMachines 上运行测试,然后在集线器服务器上收集结果)切换到 Selenium Grid 2。
已尝试使用 ParallelizableAttribute 选项。不幸的是,我注意到 IWebDriver 存储在全局变量(puhh)中。这导致测试启动多个浏览器实例,但测试使用单个 IWebDriver -> 测试执行发生在单个浏览器中 -> 测试在单个进程下运行,但具有多个“工作”线程。尝试使用 2 个虚拟机作为“节点”,将本地 PC 作为集线器。
我知道最好的解决方案是更改无效的想法以将驱动程序存储在全局变量中,但这会花费太多时间:要更新 3k+ 繁重的 UI 测试;许多静态方法也期望将驱动程序作为全局变量进行更新。
NUnit 3.0 还提供了并行运行多个程序集的选项。运行多个测试项目很好,但目前我们每个应用程序有 1 个程序集。并行运行一个应用程序(一个程序集)的测试会很好。
还有其他方法可以在这里使用 GRID + NUnit 3 来使其工作吗?
最后,重构了现有的解决方案:现在执行期间的每个测试都有自己的驱动程序。由于这种变化,很多代码被重写(似乎有太多的方法期望将 IwebDriver 作为全局变量)
nunit-3.0 - NUnit 3.0 控制台不适用于“include”参数
在 NUnit 3.0 之前,我使用下一个参数来包含要执行的测试类别:/include:"name"
现在在 NUnit 3.0 中,写作似乎有所不同 - 据此:https ://github.com/nunit/dev/wiki/Command-Line-Options
我必须使用类似的东西:-include=name
但在我看来,正确的选项是--include=name
当我--workers
以相同的方式编写其他参数并且它们起作用时。
问题是当我使用--include
参数时出现错误:"Invalid argument: --include=Selenium"
(Jenkins 控制台向我显示此错误)。
我究竟做错了什么?
c# - 如果在“预测试”阶段失败,为什么测试标记为“通过”?
我使用 NUnit 3.0运行测试。
我的问题是下一个:我有一个带有测试的类,并且在这个类的构造函数中有一个在所有测试之前运行的方法(因为它在构造函数中)。在执行此方法时,会发生错误,然后我使用CleanUp
方法处理它。在CleanUp
方法中,我使用TestContext.CurrentContext.Result.Outcome.Status
属性来查看我运行的测试的状态。
问题是测试根本没有运行(因为前置条件方法失败)。那么为什么这个属性告诉我测试通过了呢?
这是我的一段代码:
c# - NUnit 3.0.1 for C#:如何以并行方式从同一类运行一些测试
我正在使用 VS2012 + Resharper。我创建了 NUnit 测试项目(NUnit 3.0.1)并为所有测试类添加了 Parallelizable 属性。它以并行方式工作,但仅在所有类启动时才起作用。当它为一节课开始时,它会一个接一个地运行测试。我在 Visual Studio 的 Resharper 窗口中盯着测试。
如何以并行方式从一个类运行一些测试?