首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NUnit 2.6.2 TestContext.CurrentContext始终为空

NUnit 2.6.2 TestContext.CurrentContext始终为空
EN

Stack Overflow用户
提问于 2013-08-30 08:34:03
回答 1查看 4K关注 0票数 1

我正在尝试使用TestContext.CurrentContext of NUnit 2.6.2,但它始终是空的。

我想要的是具有测试结果的输出,但是如果我运行下面的代码,我总是在TearDown方法中得到一个TearDown。测试和结果中的所有属性都抛出异常。

代码语言:javascript
复制
[TestFixture]
public class UtilitiesTests
{
  [TearDown]
  public void TearDown()
  {
    //using console here just for sake of simplicity. 
    Console.WriteLine(String.Format("{0}: {1}", TestContext.CurrentContext.Test.FullName, TestContext.CurrentContext.Result.Status));
  }

  [Test]
  public void CleanFileName()
  {
    var cleanName = Utilities.CleanFileName("my &file%123$99\\|/?\"*:<>.jpg");
    Assert.AreEqual("my-efile12399---.jpg", cleanName);
  }
}

我可能做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-03 19:26:14

根据这个讨论,您必须确保使用NUnit测试器的正确版本执行。版本必须是NUnit 2.6.2。

尝试使用具有正确版本的nunit-控制台运行您的测试。

更新:I在VS2012中设置了一个新项目,并使用NuGet添加了NUnit 2.6.2和NUnit.Runners 2.6.2。使用Resharper,我没有错误,但也没有控制台输出,所以我确实从<project-folder>\packages\NUnit.Runners.2.6.2\tools\运行了<project-folder>\packages\NUnit.Runners.2.6.2\tools\

这是我收到的输出:

结果看上去没问题。我在上面运行了你的示例代码。

但是,我必须修改您的代码才能运行它:

代码语言:javascript
复制
using System;
using NUnit.Framework;

[TestFixture]
public class UtilitiesTests
{
    [TearDown]
    public void TearDown()
    {
        //using console here just for sake of simplicity. 
        Console.WriteLine(String.Format("{0}: {1}", TestContext.CurrentContext.Test.FullName, TestContext.CurrentContext.Result.Status));
    }

    [Test]
    public void CleanFileName()
    {
        var cleanName = "my &file%123$99\\|/?\"*:<>.jpg";
        Assert.AreEqual("my &file%123$99\\|/?\"*:<>.jpg", cleanName);
    }
}

您应该再次尝试使用NUnit.exe运行您的测试,但是在验证您在Help ->关于NUnit中有正确的版本之前.

我的看起来是这样的:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18528413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档