问题描述
我最近将Visual Studio vom 2013升级到了2019。 现在,我运行的是VS Professional 2019,V16.7.4。
我已经加载了一个包含3个C#项目和3个带有单元测试的对应项目的解决方案。 Unittest-Dlls内置在正确的文件夹中,一些测试数据通过Postbuild-Script复制到该文件夹下。 单元测试本身在其运行目录下搜索其测试日期,该目录通过
找到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年)发生了:
当我打开“测试资源管理器”时,我看到一个分层视图。当我从“第3级”(列出了所有Testclasss)运行测试时,它们运行良好,并且TestDataDir
的结果是S:\WinSPC\V21xx.vs2019\__BIN\i386\Debug\GuidedSequence\UnitTests\GSDataIO\Testdata
-这正是我想要的
但是,当我尝试从第一级或第二级运行测试时(所有测试类中的所有测试都应在其中运行),TestDataDir
返回S:\WinSPC\V21xx.vs2019\__src\_Libraries\GuidedSequence\TestResults\Deploy_werber 2020-09-22 12_50_41\Out\Testdata
的原因当然导致测试失败,因为那是错误的文件夹
那么差异如何呢?而且更重要的是:如何从构建好目录的目录运行所有测试,以备不时之需?
我只在开发机上运行测试,因此需要进行部署,我发现所有的测试结果都会污染我的源文件夹。
我已经尝试做的是使用一个.testsettings
文件,在该文件中我禁用了任何部署并设置了“本地执行”,但是每次我使用这样的文件时,都会跳过所有测试。
解决方法
我想我终于明白了:.testsettings文件已被弃用,并由.runsettings文件代替。 创建此类文件并使用它时,测试将再次起作用。 不幸的是,现在没有Click-Editor了,因此您必须在Internet上搜索选项并用编辑器破解它们;-(