问题标签 [nunit]

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.

0 投票
2 回答
333 浏览

c# - 存储静态单元测试变量的最佳方法是什么?

我目前正在使用 NUnit 并测试一个类库。到目前为止,我在测试类的顶部使用了一个常量列表来保存一些静态测试变量。这是最好的方法,还是有更流畅的方法来处理它?

0 投票
2 回答
13031 浏览

c# - 如何以编程方式运行 NUnit

我有一些引用 NUnit 并使用单个测试方法创建单个测试类的程序集。我能够获得该程序集的文件系统路径(例如“C:...\test.dll”)。我想以编程方式使用 NUnit 来针对这个程序集运行。

到目前为止,我有:

但是,调用 runner.Load(path) 会引发 FileNotFound 异常。我可以通过堆栈跟踪看到问题在于 NUnit 在堆栈中调用 Assembly.Load(path) 。如果我将路径更改为“Test,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”,那么我仍然会收到相同的错误。

我已向 AppDomain.Current.AssemblyResolve 添加了一个事件处理程序,以查看是否可以手动解析此类型,但我的处理程序永远不会被调用。

让 Assembly.Load(...) 工作的秘诀是什么?

0 投票
2 回答
12730 浏览

asp.net - 如何在 Visual Studio 中添加 NUnit

我需要为我的应用程序编写测试用例。我选择了 NUnit。请让我知道如何将 NUnit 添加到我的 Visual Studio IDE。我在哪里可以下载它们?

0 投票
6 回答
9631 浏览

c# - 如果 x86 构建,Nunit.exe 无法在 Vista 64 位上运行

我在 Vista 64 位上,我有一个使用 x86 配置构建的项目。一切正常。现在,我们正在创建测试。我们有 NUnit 2.4.8 但我们有很多问题。

当我们直接选择 .dll 时,测试正在通过 Nunit.exe (gui) 加载,但在执行时我们有一个 system.badimageformatexception。

我通过在 Google 上搜索了一些关于 nunit.exe.config 的技巧,但没有任何工作。(更改为 UTF8...取消注释 .net 版本以进行启动)。

任何的想法?

更新

我已经清理了解决方案并删除了所有 BIN 文件夹。现在,当我编译时,我清楚地看到 bin 目录中只有 /x86/,而不是 x64 中的旧 /debug/。

当我使用 Nunit 时,我有一个异常(在加载中):System.IO.FileNotFoundException...

服务器堆栈跟踪:在 System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 在 System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 在 System.Reflection.Assembly.Load(String assemblyString) 在 NUnit.Core.Builders.TestAssemblyBuilder.Load(String path) 在 NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites) 在 NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName,Boolean autoSuites) 在 NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage package) 在 NUnit.Core.TestSuiteBuilder.Build(TestPackage package) 在 NUnit.Core.SimpleTestRunner.Load(TestPackage package) 在 NUnit.Core.ProxyTestRunner.Load(TestPackage package ) 在 NUnit.Core.ProxyTestRunner.Load(TestPackage package) 在 NUnit.Core.RemoteTestRunner.Load(TestPackage package) 在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg,Int32 methodPtr,布尔 fExecuteInContext)处的 methodPtr,布尔 fExecuteInContext,Object[]& outArgs)Build(TestPackage package) at NUnit.Core.SimpleTestRunner.Load(TestPackage package) at NUnit.Core.ProxyTestRunner.Load(TestPackage package) at NUnit.Core.ProxyTestRunner.Load(TestPackage package) at NUnit.Core.RemoteTestRunner.Load( TestPackage 包)在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) 在 System.Runtime.Remoting.Messaging.StackBuilderSink。 SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)Build(TestPackage package) at NUnit.Core.SimpleTestRunner.Load(TestPackage package) at NUnit.Core.ProxyTestRunner.Load(TestPackage package) at NUnit.Core.ProxyTestRunner.Load(TestPackage package) at NUnit.Core.RemoteTestRunner.Load( TestPackage 包)在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) 在 System.Runtime.Remoting.Messaging.StackBuilderSink。 SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) )System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) )

在 [0] 处重新抛出异常:在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 在 NUnit.Core 的 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)。 NUnit.Util.TestDomain.Load(TestPackage package) 处的 TestRunner.Load(TestPackage package) NUnit.Util.TestLoader.LoadTest(String testName)

更新 2

我正在使用已修改为 x86 而不是 x64 的任何 CPU 进行编译。原因是为了调试。这已经在上一个链接中讨论过了。我必须确认 NUnit 在 64bits mod 和 Corflags.exe 中运行

0 投票
9 回答
43192 浏览

c# - 何时使用 TestFixtureSetUp 属性而不是默认构造函数?

NUnit 文档没有告诉我何时使用带有 a 的方法TestFixtureSetup以及何时在构造函数中进行设置。

关于与默认构造函数有什么好的/坏的做法,TestFixtureSetup或者没有任何区别?

0 投票
5 回答
986 浏览

nunit - 如何在 NUnit 中编写测试方法来测试保存文件方法?

我编写了一个保存文件方法来将对象保存到 xml。但我不确定如何在 NUnit 中测试该方法。我是否需要手动创建示例文件并比较文件之间的字符串?有没有更好的方法来测试该方法?

感谢您的回答。

0 投票
5 回答
11803 浏览

c# - 如何并行运行 NUnit(Selenium Grid) 测试?

我当前的项目使用 NUnit 进行单元测试并驱动用 Selenium 编写的 UAT。开发人员通常在 VS.Net 2003 中使用 ReSharper 的测试运行程序运行测试,而我们的构建框通过 NAnt 启动它们。

我们希望并行运行 UAT 测试,这样我们就可以利用 Selenium Grid/RC,从而使它们能够运行得更快。

有人对如何实现这一目标有任何想法吗?和/或在不自动编写重复测试的情况下针对多个浏览器环境测试 Selenium 测试的最佳实践?

谢谢你。

0 投票
1 回答
236 浏览

c# - 为 nunit 单元测试搜索文件依赖项

我有一个 winforms C# 类,它在内部查找文件.. 为了帮助进行单元测试,我将其更改为从外部传入文件,例如:

字符串文件 = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location + "TestXML.xml");

Foo = new Foo(文件);

问题是代码可以正常工作,但是在 Nunit 中运行时会出现错误提示“Cant find directory C:\doc & settings\ . . .. testxml.xml

有什么想法吗?

0 投票
3 回答
1772 浏览

visual-studio-2005 - NUnit 程序集如何出现在 VS“添加引用”对话框中?

因此,在安装 NUnit 之后,程序集(nunit.framework等)现在出现在References > Add Reference对话框中,但它们不在%WINDIR%\Microsoft.NET\Framework\v2.0.50727目录中,并且没有NUnit针对 Assembly Path 的注册表项(i.e. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramewokr\AssemblyFolder)

NUnit在安装目录的项目属性参考路径中也没有创建自动条目。他们到底是怎么出现在“添加对话框”中的?!?!我认为上述方式是程序集出现在“添加引用”中的唯一方式。

0 投票
2 回答
1071 浏览

msbuild - NUnit 和 NAnt 的未来考虑

在 .NET v1 期间,我尝试说服同事使用 NUnit 和 NAnt 的附加工具来养成测试驱动和自动化构建的工作习惯,但没有取得多大成功。当 .NET Framework 2.0 和 Visual Studio 2005 Team Suite 出现时,我能够“强制”我的团队编写测试并在 Visual Studio 中为他们自己提供可视化测试。我还能够通过额外的 MSBuild 任务来调整项目文件,以执行更多的构建自动化。

当然,这并不意味着微软已经交付了完美的系统,但我相信他们已经采取了正确的步骤。随着所有这些特性直接融入框架和产品并成为“原生”,让开发人员更容易进入更好的开发实践。

早就忘记了开源选项(我确实错过了),我想知道当前 NUnit 和 NAnt 的化身有什么价值主张?在这个阶段,有什么理由可以说服团队使用 MSBuild 或 MSTest?

澄清:我的公司是纯微软 SI。Visual Studio Team Suite 版本、Database Professional 版本、TFS 等可供我们使用。我们不使用 Visual Studio 专业版或更低版本。