【问题标题】:"Oh noes!" exception in Nancy testing“哦不!”南希测试中的异常
【发布时间】:2013-05-14 16:21:27
【问题描述】:

内部异常:

{"Unable to locate view 'home'\r\nCurrently available view engine extensions: cshtml,vbhtml,sshtml,html,htm\r\nLocations inspected: ,,,,,,,,views/Store/home-he-   IL,views/Store/home,Store/home-he-IL,Store/home,views/home-he-IL,views/home,home-he-IL,home\r\nRoot path: "}

测试代码:

[TestFixture]
public class Class1
{
    [Test]
    public void Spike()
    {
        // Given
        var foo = typeof (RazorViewEngine);
        var bar = typeof (SuperSimpleViewEngine);
        var bootstrapper = new Bootstrapper();
        var browser = new Browser(bootstrapper);

        // When
        var result = browser.Get("/mytest", with =>
        {
            with.HttpRequest();
        });

        // Then
        Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
    }
}

模块如下所示:

public class YonatanModule : NancyModule
{
    public YonatanModule()
    {
        Get["/mytest"] = o =>
            {
                return View["home"];
            };
    }        
}

根据thisthis,我尝试添加对Nancy.ViewEngines.Razor 的引用。
我正在使用带有 Razor 的 Nancy 0.16.1(尽管我正在尝试使用干净的 html 页面进行第一次测试)。
另外,我使用的是 Azure,但在这种情况下,我不运行模拟器或其他任何东西。

【问题讨论】:

标签: .net exception testing nancy


【解决方案1】:

通过在“复制到输出目录”中标记视图“始终复制”来解决。
不知道为什么它可以在 web 项目中工作,但不能通过测试项目中的Browser

【讨论】:

  • 因为视图没有复制到测试输出位置。复制它们将强制它们被复制到 bin 目录中,从而允许它们在您的测试中运行。另一种方法是实现一个 RootPathProvider 用于单元测试。
  • 这是我在testing NancyFx上写的东西
  • @JefClaes - 谢谢 - 您的帖子实际上在原始问题中被引用。
  • 我通过将视图标记为“始终复制”并禁用自定义根路径提供程序来解决此问题。
猜你喜欢
  • 2013-02-21
  • 1970-01-01
  • 2011-12-29
  • 2019-01-03
  • 2011-11-13
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
  • 2014-07-07
相关资源
最近更新 更多