gpt4 book ai didi

c# - Visual Studio 测试、Process.Start、SQLCMD 和 Windows 命令处理器错误

转载 作者:太空宇宙 更新时间:2023-11-03 13:52:00 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 2012,我正在使用 Visual Studio 的测试框架 (mstest) 开发一些集成测试。

几天前,我发现了一些关于现在 Visual Studio 2012 可以在输出目录(即 bin\Debugbin\Release)中执行测试的信息,我禁用了部署以简化很多事情。

虽然大部分事情都按预期工作,但我发现了一个大问题:一些 [ClassInitialize] 代码使用 Process 类执行一个进程,并且在禁用 部署,每当启动进程时,我都会收到此错误:

enter image description here

我的第一印象是,启动过程中可能有些地方不正确,我将相同的命令和参数复制粘贴到 CMD 中,它按预期运行。

经过一些调查,我弄清楚了为什么会这样:因为我将测试运行程序配置为作为 64 位进程启动。切换到 X86 后,例如 Process.Start("cmd") 起作用了。

但更糟糕的是 SQLCMD - 我在测试运行中启动的实际进程 - 仍然失败并出现所谓的错误。

在 Visual Studio 测试运行程序中启动任何进程时都会发生此错误。

从测试运行器启动时,SQLCMD 会发生什么情况?

最佳答案

经过多次尝试和错误,我终于解决了这个问题。

  • 现在我可以将测试作为 64 位进程运行(我认为这是主要问题,但我错了!)。
  • 我仍然可以从输出目录运行测试!

但是我必须改变什么才能让它正常工作? .runsettings文件。 只是注释掉<DataCollectionRunSettings> XML 元素...然后 SQLCMD 进程突然又开始工作了!

我真的不知道为什么注释掉那个配置元素会奏效,但重点是,因为我只想要集成测试并“按原样”运行它们,所以这个解决方案对我来说很好。

无论如何,如果有人能解释为什么注释掉 <DataCollectionRunSettings>元素产生了这种效果,我们将不胜感激。

还是谢谢你!

关于c# - Visual Studio 测试、Process.Start、SQLCMD 和 Windows 命令处理器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com