【发布时间】:2012-11-19 09:44:28
【问题描述】:
我正在使用 Visual Studio 2012,并且正在使用 Visual Studio 的测试框架 (mstest) 开发一些集成测试。
几天前我发现一些关于现在 Visual Studio 2012 可以在输出目录中执行测试的信息(即 bin\Debug、bin\Release)并且我禁用了部署为了简化很多事情。
尽管大多数事情都按预期工作,但我发现了一个大问题:一些[ClassInitialize] 代码使用Process 类执行一个进程,并且在禁用部署 之后,每当启动一个进程时,我得到这个错误:
我的第一印象是,启动过程中的某些东西可能不正确,我将相同的命令和参数复制粘贴到 CMD 中,它按预期工作。
经过一番调查,我弄清楚了为什么会这样:因为我将测试运行器配置为作为 64 位进程启动。切换到 X86 后,例如 Process.Start("cmd") 工作。
但更糟糕的是 SQLCMD - 我在测试运行中启动的实际进程 - 仍然失败并出现所谓的错误。
在 Visual Studio 测试运行程序中启动任何进程时都会发生此错误。
从测试运行器启动 SQLCMD 会发生什么情况?
【问题讨论】:
标签: c# visual-studio-2012 mstest .net-4.5 sqlcmd