NUnit测试没有读取项目文件

时间:2014-03-04 22:43:10

标签: c# reflection nunit assemblies

我想对一些解压缩代码进行单元测试。我将测试文件放入要在测试中使用的项目中。我可以在控制台应用程序中运行代码并且它工作正常,但是当我运行测试时它们会失败。

测试:

public void CsvStreamsToCsvStream()
    {
      string dir = System.IO.Path.GetDirectoryName(
      System.Reflection.Assembly.GetExecutingAssembly().Location);

      string file = Path.Combine(dir, @"\TestFiles\Test.csv");
      using (FileStream fstrm = new FileStream(file, FileMode.Open))
      {
        var decompressor = 
          new MemoryDecompresser(fstrm, Path.GetFileName(file));
        var results = decompressor.GetStreams();
        Assert.AreEqual(1, results.Count());
        Assert.AreEqual(results.First().Key, "Test.csv");

      }
    }

控制台应用:

namespace TestConsoleApp
{
  class Program
  {
    static void Main(string[] args)
    {
      var test = new TestDecompression();
      test.CsvStreamsToCsvStream();
    }
  }
}

项目: enter image description here

测试资源管理器: enter image description here

1 个答案:

答案 0 :(得分:0)

嵌入资源

enter image description here

使用程序集名称访问资源小瓶“GetManifestResourceStream(string)”。文件夹名称。文件名

[Test]
    public void CsvStreamsToCsvStream()
    {
      using(Stream fstrm = 
                Assembly.GetExecutingAssembly()
                .GetManifestResourceStream(@"Tests.TestFiles.Test.csv"))
      {
        var decompressor =
          new MemoryDecompresser(fstrm, "Test.csv");
        var results = decompressor.GetStreams();
        Assert.AreEqual(1, results.Count());
        Assert.AreEqual(results.First().Key, "Test.csv");

      }
    }