nunit测试工作目录

Dzm*_*voi 7 c# nunit

我有以下代码(sample1.evol - 附加到我的单元测试项目的文件):

[Test]
public void LexicalTest1()
{
     var codePath = Path.GetFullPath(@"\EvolutionSamples\sample1.evol");
     //.....
}
Run Code Online (Sandbox Code Playgroud)

我发现测试执行的工作目录不是汇编目录:(在我的情况下,代码路径变量分配给d:\EvolutionSamples\sample1.evol).

那么,如何更改执行工作目录(没有硬编码)?加载附加到测试用例的任何文件的最佳做法是什么?

Kev*_*vin 2

我将其用于需要访问数据文件的集成测试。

在任何机器上,测试需要运行创建一个名为TestDataDirectory的系统环境变量,该变量指向测试数据所在的根目录。

然后有一个静态方法来为您获取文件路径..

public static class TestHelper
{
    const string EnvironmentVariable = "TestDataDirectory";
    static string testDataDir = Environment.GetEnvironmentVariable(EnvironmentVariable);

    public static string GetTestFile(string partialPath)
    {
        return Path.Combine(testDataDir, partialPath);
    }
}
Run Code Online (Sandbox Code Playgroud)

...

[Test]
public void LexicalTest1()
{
    var codePath = TestHelper.GetTestFile(@"\EvolutionSamples\sample1.evol");
    //.....
}
Run Code Online (Sandbox Code Playgroud)