1
我想單元測試一些解壓縮代碼。我正在將測試文件放入要用於測試的項目中。我可以在控制檯應用程序中運行代碼,它運行良好,但是當我運行測試時,它們會失敗。NUnit測試沒有讀取項目文件
測試:
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();
}
}
}
項目:
測試資源管理器:
忽略這個如果這是一個愚蠢的建議,但可能是因爲測試是在一個子文件夾? – Ben
感謝您的建議@Ben,我認爲它更像是nUnit正在爲我的文件而不是組裝路徑查找C根 –
您的執行程序集*是測試運行程序。因此,使用'GetExecutingAssembly()'檢索的位置與您的控制檯應用程序中的位置不同。嘗試使用'System.Reflection.Assembly.GetAssembly(typeof(TestDecompression))。Location'來代替。 –