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
- 这就是我想要的
坏情况:
但是当我尝试运行第一级或第二级的测试时(所有测试类中的所有测试都应该运行)TestDataDir
returnsS:\WinSPC\V21xx.vs2019\__src\_Libraries\GuidedSequence\TestResults\Deploy_werber 2020-09-22 12_50_41\Out\Testdata
是什么导致测试失败当然是因为那是错误的文件夹。
那么差异是怎么来的呢?更重要的是:如何 运行 目录中的所有测试在好的情况下都喜欢?
我只 运行 在开发机器上进行测试,因此需要部署,我发现用所有测试结果污染我的源文件夹有点烦人。
我已经尝试做的是使用 .testsettings
文件,我在其中禁用任何部署并设置“本地执行”,但每次我使用这样的文件时,所有测试都会被跳过。
我想我终于明白了:.testsettings-files 已被弃用并被 .runsettings-files 取代。
当我创建这样一个文件并使用它时,测试再次工作。
不幸的是,不再有 Click-Editor,所以您必须在互联网上搜索选项,然后用编辑器破解它们;-(
我最近将 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
- 这就是我想要的
坏情况:
但是当我尝试运行第一级或第二级的测试时(所有测试类中的所有测试都应该运行)TestDataDir
returnsS:\WinSPC\V21xx.vs2019\__src\_Libraries\GuidedSequence\TestResults\Deploy_werber 2020-09-22 12_50_41\Out\Testdata
是什么导致测试失败当然是因为那是错误的文件夹。
那么差异是怎么来的呢?更重要的是:如何 运行 目录中的所有测试在好的情况下都喜欢?
我只 运行 在开发机器上进行测试,因此需要部署,我发现用所有测试结果污染我的源文件夹有点烦人。
我已经尝试做的是使用 .testsettings
文件,我在其中禁用任何部署并设置“本地执行”,但每次我使用这样的文件时,所有测试都会被跳过。
我想我终于明白了:.testsettings-files 已被弃用并被 .runsettings-files 取代。 当我创建这样一个文件并使用它时,测试再次工作。 不幸的是,不再有 Click-Editor,所以您必须在互联网上搜索选项,然后用编辑器破解它们;-(