如何制作 .dll 并使用 NUnit 运行它?
Posted
技术标签:
【中文标题】如何制作 .dll 并使用 NUnit 运行它?【英文标题】:How to make a .dll and run it with NUnit? 【发布时间】:2014-09-28 16:19:57 【问题描述】:我对 Windows 应用商店应用程序编程完全陌生, 所以我也是 Visual Studio Express 的新手。
我的目标是测试一个简单的类方法。 正如here 提到的,Express 版本没有任何内置的单元测试。 在这个thread 中,Rafal 提供了一个solution。
我完全按照描述的那样做,所以我的外部工具如下所示:
当我执行它时(Tools --> "Execute NUnit"),Nunit 启动并出现 NUnit 的 Gui。但是突然出现这个异常:
在异常详情中:
System.IO.FileNotFoundException...
at NUnit.Util.ProjectService.WrapAssembly(String assemblyPath)
at NUnit.Util.ProjectService.ConvertFrom(String path)
at NUnit.Util.ProjectService.LoadProject(String path)
at NUnit.Util.TestLoader.LoadProject(String filePath, String configName)
我的项目文件夹结构如下:
测试类在“WebTest.Shared”中。
我想我需要一个 .dll 才能在 NUnit 中运行,正如 Jon here 所提到的。 那么,如何从我的项目中制作一个 dll 以使用 NUnit 运行它? 谁能指导我解决这个问题? (请一步一步来)
编辑:
我在ChrisMidea工作后,没有“$BinDir$TargetName.dll/run”块出现异常(异常细节与之前相同):
编辑号 2:
我已经设置了这些值:
标题:执行 NUnit
命令: D:\Path\To\NUnit\bin\nunit.exe
参数: $(BinDir)$(TargetDir)$(TargetExt)/run
初始目录: $(BinDir)
编辑号 3:
关闭并重新打开 VS Express 后 我得到了这个新的例外:
在 NUnit 异常详情中:
System.ApplicationException:无法在程序集中找到测试
System.ApplicationException...
第 4 号编辑
这是我的测试类(StringUtilitiesTest.cs):
using System;
using System.Collections.Generic;
using System.Text;
using WebappTest.Shared.Utilities;
using NUnit.Framework;
namespace WebappTest.UnitTest
[TestFixture]
public class StringUtilitiesTest
[Test]
public void TransferFunds()
Assert.AreEqual("Hello", StringUtilites.getString("Hello"));
【问题讨论】:
【参考方案1】:在外部工具中:
您是否尝试将参数框中的大括号 替换为普通大括号 ()?
【讨论】:
能否请您发布“Argumente”字段的内容? 嗯...我不知道是什么导致了您的问题。从您到目前为止所说的内容来看,我猜 NUnit 找不到包含您的测试的程序集,因为由于某种原因,Visual Studio 环境变量(例如 $(BinDir) )不起作用或包含错误信息。如果我正确地输入包含您的测试的程序集的绝对路径(如果我没听错的话,webappTest.shared)到参数中应该至少可以工作。你可以试试吗? 您的测试类中似乎缺少一个属性。你也可以在这里发布测试课程吗? 看起来是正确的。恐怕我没有更多的想法,抱歉。【参考方案2】:Visual Studio 2017 Express(最终的 Express 版本)包括测试资源管理器。将 NUnit3TestAdapter NuGet 添加到您的项目中,测试资源管理器应该会发现您的测试。
【讨论】:
以上是关于如何制作 .dll 并使用 NUnit 运行它?的主要内容,如果未能解决你的问题,请参考以下文章
使用 NUnit 时,我应该如何在运行时修改 app.config?
从 NuGet 安装 NUnit 后,如何强制 TestDriven.Net 使用 NuGet 引用的 NUnit dll?
如何使用 Windows 身份验证和 Firefox 运行 Selenium NUnit 测试?