草庐IT

nunit-addins

全部标签

c# - 调试在 NUnit 下运行的测试

我有一个.NET4.0C#解决方案,其中包含一个在NUnit下运行单元测试的测试项目。NUnit二进制文件是v3.5。我可以很好地运行测试,但我无法在VisualStudio中设置断点和单步执行。我猜这是由.NET版本不匹配引起的。有没有办法使用NUnitforv3.5单步执行v4.0测试程序集? 最佳答案 问题是,除非您另有说明,否则NUnit会在确定有必要时生成一个子进程来运行测试。如果你在Process Explorer观看,您可以看到“nunit-console.exe”*生成了“nunit-agent.exe”*。Visu

c# - NUnit 不遵守属性继承

我对NUnit有疑问-想知道是否有人有任何想法。我们使用的是NUnit2.5.3.9345和C#3.5。采用以下代码:publicclassUnitTestBase{[TestFixtureSetUp]publicvoidSetUpTestFixture(){//Dosomethinginbase}}[TestFixture]publicclassSomeTestClass:UnitTestBase{[TestFixtureSetUp]publicvoidFixtureSetUp(){//Dosomethingintestclass}[Test]publicvoidSomeTest()

c# - 使用 nunit 重新加载 app.config

我有多个NUnit测试,我希望每个测试都使用特定的app.config文件。有没有办法在每次测试前将配置重置为新的配置文件? 最佳答案 尝试:/*Usage*using(AppConfig.Change("my.config")){*//dosomething...*}*/publicabstractclassAppConfig:IDisposable{publicstaticAppConfigChange(stringpath){returnnewChangeAppConfig(path);}publicabstractvoidD

c# - 如何在运行时从 NUnit 测试运行中获取单元测试方法属性?

我将有关给定测试的各种信息(多个错误跟踪系统的ID)存储在一个属性中,如下所示:[TestCaseVersion("001","B-8345","X543")]publicvoidTestSomethingOrOther()为了在测试过程中获取这些信息,我写了下面的代码:publicstringGetTestID(){StackTracest=newStackTrace(1);StackFramesf;for(inti=1;i().First();returntcv.TestID;}}}问题在于,在Release模式下通过NUnit运行测试时,应该具有测试名称和这些属性的方法被替换为以

c# - 延迟的 NUnit 断言消息评估

我的测试代码中有这个断言Assert.That(()=>eventData.Count==0,Is.True.After(notificationPollingDelay),"Receivedunexpectedeventwithlasteventdata"+eventData.Last().Description());在一段时间后断言某些条件,失败时会产生一条消息。它无法运行,因为消息字符串是在断言开始时构造的,而不是在断言结束时构造的。因此eventData集合仍然是空的(因为它最初是空的)并且尝试获取集合中最后一项的Description失败。在NUnit中是否有解决方法或合适

c# - NUnit 或 Fluent Assertions 测试引用相等性?

我正在使用NUnit2.6.2+FluentAssertions2.0.1。我想断言两个引用不指向同一个对象实例。我找不到一种干净的方式来表达这一点。NUnit有Assert.ReferenceEquals(ref1,ref2)-但我找不到否定断言。在FluentAssertions中我找不到任何直接支持这种情况的东西。我能做到的唯一方法是这样的:NUnit:Assert.False(object.ReferenceEquals(ref1,ref2));流畅:object.ReferenceEquals(ref1,ref2).Should().BeFalse();就最小噪音而言,这两者

c# - 为什么或如何将 NUnit 方法与 ICollection<T> 一起使用

一些NUnit的断言方法被重载以使用ICollection但不是ICollection因此你不能使用它们。这附近有什么吗?哎呀,我是在做傻事吗?我不得不退回到使用Assert.AreEqual而不是专门的方法,它使我的测试变得丑陋。有什么建议吗?编辑:感谢您的回复。ThatNUnit的方法似乎很有趣,所以我稍后会研究它。Mark正确地提到了这一点,但是NUnitCollectionAsserts非常好。我最近在一些新测试中使用了它们,发现它们非常适合使用。 最佳答案 我不知道这是否是您要找的,但对于通用集合而不是使用:Assert.

c# - 如何在 Visual Studio 2015 上使用 NuGet 包管理器为 C# 安装 NUnit

我有VisualStudio2015。我想使用NuGet包管理器为C#项目添加NUnit测试,我希望有可能使用VisualStudio和在VisualStudio中运行测试。首先我创建新的C#项目:菜单文件→新建→项目→已安装→模板→视觉C#→控制台应用程序→OK。然后我安装NUnit:菜单工具→NuGet包管理器→管理解决方案的NuGet包...然后我安装包:N单位NUnit.RunnerNUnitTestAdapter在输出中我看到:Successfullyinstalled'NUnit3.0.0-beta-4'toTmp.Successfullyinstalled'NUnit.R

c# - NUnit 3 : Forbid tests to run in parallel

我安装了最新的NUnit(3.2.0),并且所有测试都并行运行。它可能看起来像是理想的行为,但我并没有要求它,实际上它破坏了我的一些测试。我在[OneTimeSetUp]中进行了一些依赖于线程的初始化,似乎我无法做任何事情来强制NUnit按顺序运行我的测试。我读过documentation它指出默认情况下测试不是并行运行的,但实际上它们是!此外,我尝试添加以下属性:[assembly:Parallelizable(ParallelScope.None)]—没有成功。有人知道如何改变这种行为吗?附言我使用ReSharper运行它,但也尝试使用MSVS插件。UPD:我正在使用MVVMLig

C# NUnit TestCaseSource 传递参数

我有以下生成一组测试用例的方法!publicIEnumerablePrepareTestCases(param1){foreach(stringentryinentries){yieldreturncallMyMethod(param1);}}如何将字符串类型的参数作为参数传递给我的PrepareTestCases()方法?有没有办法做到以下几点:[Test,Category("Integration"),TestCaseSource("PrepareTestCases",param1)]publicvoidTestRun(ResultsOfCallMyMethodtestData){