在VS2012中,我有一堆(MS)单元测试,它使用不同的xml /文本文件,我存储在与测试文件类相同的文件夹中。
我使用File.OpenRead(AppDomain.CurrentDomain.BaseDirectory +“file”)打开这些文件
如果我只运行一次测试,它就可以正常读取文件。
如果我一次运行所有测试,BaseDirectory会返回一个不同的路径(在TestResults / Deploy / currentdatetime / Out中),显然无法找到那里的文件。
怎么办?
谢谢!
答案 0 :(得分:0)
我们在VS 2017遇到了这个问题,但所有测试包括个别测试都是从TestResults文件夹运行的。我们的问题是log4net.config没有被复制到TestResults文件夹(即使Copy Always为true)。
我们的解决方案是从Solution Items文件夹中删除LocalTestRun.testrunconfig文件(直接在解决方案下)。当我们这样做时,它开始使用\ bin \ debug \文件夹,并找到我们的log4net.config文件。
答案 1 :(得分:-1)
好吧没有让它工作,似乎谷歌认为它永远不会。
解决方法只是编辑路径,如:
[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
string deployDir = AppDomain.CurrentDomain.BaseDirectory;
string[] rows = deployDir.Split(new string[] { "TestResults" }, StringSplitOptions.None);
string projectPath = rows[0].ToString();
_path = projectPath + "newpath\\";
}