【问题标题】:Nancy: Why do xUnit tests depend on the Razor view engine?Nancy:为什么 xUnit 测试依赖于 Razor 视图引擎?
【发布时间】:2012-04-03 22:25:21
【问题描述】:

为什么 Visual Studio 11 中的 Nancy / xUnit 测试依赖于 Razor 视图引擎?我正在使用 Nancy 默认视图引擎 (SSVE)。我需要不同的引导程序吗?

测试

[Fact]
public void Register_mentor_Should_redirect_to_mentor_home()
{
    // Given
    var bootstrapper = new DefaultNancyBootstrapper();
    var browser = new Browser(bootstrapper);

    //When
    var response = browser.Post("/register", (with) =>
    {
        with.HttpRequest();
        with.FormValue("role", "mentor");
    });

    // Then
    response.ShouldHaveRedirectedTo("/mentor");
}

我得到以下异常

例外

【问题讨论】:

    标签: nancy


    【解决方案1】:

    它没有。您看到该异常有两个原因

    • 您已安装 Nancy.ViewEngines.Razor nuget,其中还包括 Nancy.ViewEngines.Razor.BuildProviders.dll(自 Nancy 0.10 起)。该 dll 用于为 Nancy razor 引擎启用设计时智能感知。该文件通过 Nuget 安装的构建后事件复制到每次构建时的 \bin 目录

    • BadImageFormatException 是因为我们的项目 Nancy.ViewEngines.Razor.BuildProviders 项目中有一个错误,导致它仅针对 x86 系统。这已在即将发布的 0.11 版本中得到解决,并已签入主分支

    因此,要解决此问题,请删除 Nancy.ViewEngines.Razor nuget(您说您只使用了 SSVE 视图)并且一切都应该正常工作(卸载 nuget 也会卸载构建后事件挂钩)

    【讨论】:

    • PM> 卸载包 Nancy.ViewEngines.Razor 卸载包:找不到包“Nancy.ViewEngines.Razor”。
    • 我确实为我安装了 razor 作为 Cassette.Nancy 软件包的一部分,但几天前已将其卸载。不管你是对的,它是在我的 \bin 目录中徘徊的讨厌的 Razor.BuildProviders dll。我需要做的就是对项目执行清理,然后决定我不信任它并完全删除 bin 文件夹,然后重新编译。现在我的单元测试工作了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    相关资源
    最近更新 更多