我已将NUnit测试项目添加到项目中以进行单元测试
我的主要项目是
C:\Users\myName\Desktop\0120-project\ProjectName\
单元测试项目位于:
C:\Users\myName\Desktop\0120-project\ProjectNameTest\
现在我正在调试一个单元测试:
[Test]
public void ExportationTest()
{
var evan= System.Environment.CurrentDirectory;
//...
}
evan
的返回值为:
C:\Users\myName\AppData\Local\JetBrains\ReSharperPlatformVs12
怎么可能呢?!我甚至没有从那里启动项目。我正在使用visual studio 2013 environement。
答案 0 :(得分:3)
来自文档:
Environment.CurrentDirectory属性
获取或设置当前工作的完全限定路径 。目录
看起来您正在使用ReSharper来启动测试,这可能会将工作目录设置为该位置。
答案 1 :(得分:1)
为了解决问题:
我找到了解决问题的解决方案:
[Test]
public void ExportationTest()
{
Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
var evan= System.Environment.CurrentDirectory;
//...
}
输出
C:\Users\myName\Desktop\0120-project\ProjectNameTest\
P.S:将适用于基于桌面的应用程序,不确定基于Web的应用程序,如asp.net
答案 2 :(得分:1)
Nunit有一个名为TestContext.CurrentContext.TestDirectory
的属性,你应该在版本3发布后使用它。
答案 3 :(得分:0)
使用
Application.StartupPath
迷恋
Environment.CurrentDirectory