Visual Studio 2019 运行 来自不同文件夹的单元测试?

Visual Studio 2019 running UnitTests from different folders?

我最近将 Visual Studio vom 2013 升级到 2019。 现在我是 运行nig VS Professional 2019,V16.7.4.

我已经加载了一个包含 3 个 C# 项目和 3 个带有单元测试的相应项目的解决方案。 Unittest-Dll 内置于正确的文件夹中,一些测试数据通过 Postbuild-Script 复制到该文件夹​​下。 Unittest 本身在其 运行ning 目录下搜索其测试日期,该目录可通过

找到
public static string TestDataDir
{
    get
    {
        Assembly assemblyExecuting = Assembly.GetExecutingAssembly();
        string sFullDllName = assemblyExecuting.Location;
        string sExecutingDir = Path.GetDirectoryName(sFullDllName);
        string sTestDataDir = Path.Combine(sExecutingDir, "Testdata");
        System.Diagnostics.Debug.WriteLine("TestDataDir= " + sTestDataDir);
        return sTestDataDir;
    }
}

所有这一切在 Visual Studio 2013 年运作良好,但现在(2019 年)发生了这种情况:

好案例:

当我打开测试资源管理器时,我看到了分层视图。当我 运行 来自“第三级”(列出所有测试类)的测试时,它们运行良好并且 TestDataDir 的结果是 S:\WinSPC\V21xx.vs2019\__BIN\i386\Debug\GuidedSequence\UnitTests\GSDataIO\Testdata - 这就是我想要的


坏情况:

但是当我尝试运行第一级或第二级的测试时(所有测试类中的所有测试都应该运行)TestDataDirreturnsS:\WinSPC\V21xx.vs2019\__src\_Libraries\GuidedSequence\TestResults\Deploy_werber 2020-09-22 12_50_41\Out\Testdata 是什么导致测试失败当然是因为那是错误的文件夹。


那么差异是怎么来的呢?更重要的是:如何 运行 目录中的所有测试在好的情况下都喜欢?

我只 运行 在开发机器上进行测试,因此需要部署,我发现用所有测试结果污染我的源文件夹有点烦人。


我已经尝试做的是使用 .testsettings 文件,我在其中禁用任何部署并设置“本地执行”,但每次我使用这样的文件时,所有测试都会被跳过。

我想我终于明白了:.testsettings-files 已被弃用并被 .runsettings-files 取代。 当我创建这样一个文件并使用它时,测试再次工作。 不幸的是,不再有 Click-Editor,所以您必须在互联网上搜索选项,然后用编辑器破解它们;-(