我是Windows Store App编程的新手, 所以我也是Visual Studio Express的新手。
我的目标是测试simpple类方法。 如上所述here,Express版本没有任何内置单元测试。 在此thread中,Rafal提供了solution。
我完全按照描述做了,所以我的外部工具看起来像这样:
当我执行它时(工具 - >"执行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所述。 那么,如何从我的项目中创建一个用于运行NUnit的dll? 谁能引导我解决这个问题? (请一步一步)
修改
在我使用ChrisM的想法之后,异常stll出现时没有" $ {BinDir} $ {TargetName} .dll / run" block(异常详细信息与之前相同):
编辑第2号:
我设置了这些值:
标题:执行NUnit
命令: D:\ Path \ To \ NUnit \ bin \ nunit.exe
参数: $(BinDir)$(TargetDir)$(TargetExt)/ run
初始目录: $(BinDir)
编辑第3号:
关闭并重新打开VS Express后 我得到了这个新的例外:
在NUnit Exception Details中:
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"));
}
}
}
答案 0 :(得分:0)
在外部工具中:
您是否尝试使用普通的()?
替换参数框中的花括号{}答案 1 :(得分:0)
Visual Studio 2017 Express(最终版本)包括测试资源管理器。将NUnit3TestAdapter NuGet添加到您的项目中,测试资源管理器应该发现您的测试。