对于我的新项目,我安装了 Visual Studio 2022,而我的同事仍在使用 Visual Studio 2019。
大多数测试在我的计算机上都失败了,经过一些故障排除后,我发现这是由于运行测试时工作目录的更改所致。我的测试不是在生成的
bin
文件夹或类似的文件夹中执行,而是在 AppData\Local\Temp
文件夹中执行:
System.IO.Directory.GetCurrentDirectory();
“C:\Users\91002969\AppData\Local\Temp”
=> 我们在测试项目中使用的所有相对路径都不再有效。
例如:
这是项目结构:
Project
|-Fixture
| \_ NoPalmsTables.IB
\_Project.csproj
文件“NoPalmsTables.IB”不会复制到输出目录,并且没有关联的构建操作。测试期间,执行以下行:
var path = Path.GetFullPath("../../Fixtures/NoPalmsTables.IB");
在 Visual Studio 2022 中,我得到以下结果
“C:\Users\91002969\AppData\Fixtures\NoPalmsTables.IB”
在 Visual Studio 2019 中,我的同事得到以下结果:
“C:\Users\90026496\PATH_TO_WORKSPACE\src\Project\Fixtures\NoPalmsTables.IB”
我的猜测是由于迁移到VS2022所致。有没有办法告诉 Visual Studio 在特定文件夹而不是
AppData
中运行测试?
我不知道它是否相关,但我们正在使用 NUnit2 来测试我们的应用程序(我们正在研究迁移到版本 3 的可能性)。最后,该应用程序面向 .NET 4.7.2。
嗯...我运行了 git clean 命令来完全清理我的工作区并且...它突然工作正常...
这是我使用的命令:
git clean -d -f -x
不知道发生了什么...
将 VS 2022 更新到最新版本后,我遇到了同样的问题。对我来说,删除(隐藏)目录
.vs
就足够了,它与我运行测试的解决方案位于同一目录中。