4

在 VS2012 中,我有一堆(MS)单元测试,它们使用不同的 xml/文本文件,我存储在与测试文件类相同的文件夹中。

我使用 File.OpenRead(AppDomain.CurrentDomain.BaseDirectory + "file") 打开这些文件

如果我只运行一个测试,它就可以工作,读取文件。

如果我一次运行所有测试,BaseDirectory 会返回不同的路径(在 TestResults/Deploy/currentdatetime/Out 中)并且显然无法在那里找到文件。

该怎么办?

谢谢!

4

2 回答 2

0

我们在 VS 2017 中遇到了这个问题,但是包括单个测试在内的所有测试都是从 TestResults 文件夹中运行的。我们的问题是 log4net.config 没有被复制到 TestResults 文件夹(即使 Copy Always 是真的)。

我们的解决方案是从解决方案项目文件夹(直接在解决方案下)中删除 LocalTestRun.testrunco​​nfig 文件。当我们这样做时,它开始使用 \bin\debug\ 文件夹并找到我们的 log4net.config 文件。

于 2018-05-31T21:21:55.573 回答
-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\\";
    }
于 2013-11-04T15:22:09.940 回答