更新
我刚刚和这两位开发人员进行了交谈,他们都说他们正在运行操作系统。这也可能是个问题。该死的,这太老了。
所有人,我不确定如何最好地描述这个问题,但是我还是想说一下。
我团队中的大多数开发人员都在使用 Windows 机器。有几个人遇到了以下问题...
从命令提示符运行命令时什么也不会发生。我说什么也不会发生是指命令提示符立即返回,没有错误,什么也不会发生。这种情况并不是每次都会发生,但平均而言,您需要运行相同的命令大约 5 次,它才会真正“生效”并执行命令。
更糟糕的是,如果正在执行的命令也调用其他命令,这些命令也可能会失败。
这样做的最终结果是,尝试从命令行运行诸如黄瓜测试之类的东西会非常令人沮丧。
具体来说,这些人一直在尝试运行 Cucumber 测试,但我今天早上尝试通过 Vagrant 添加新框时见证了这一点。这两个东西都是基于 Ruby 的,所以也许其中有一些东西。
无论如何,我想问您以下问题:
考虑到以上信息,您是否遇到过 Windows 命令行不随机执行命令的情况?如果是,您是如何解决这个问题的?
是否有任何日志可供我查看以了解命令行命令失败的原因?
答案1
这可能很难诊断。
是否有任何日志可供我查看以了解命令行命令失败的原因?
简短的回答是不会。命令提示符只是启动程序,如果无法加载,它会显示错误,但如果加载,则由各个程序显示其需要的内容。程序启动并关闭而不执行任何操作或显示任何信息,这不是错误。
但是,您可以使用进程监视器(来自 Sysinternals),它将向您显示正在发生的事情(即,正在访问的每个文件和正在读取的注册表项)。如果您将程序正常运行时发生的情况与失败时发生的情况进行比较,它可能会为您提供程序出错位置的线索。
由于只有基于 Ruby 的程序才会出现此问题,所以下一步就是编写/获取一个非常简单的 ruby 程序(可能只是显示一条消息),您可以使用它来测试 ruby 环境。
如果您正在快速运行许多 ruby 程序,则环境可能会被快速加载和卸载,如果您在完成前一个进程后尝试过快地启动一个进程,则可能会失败。
但我认为这样做也会有效,然后你就会看到你正在尝试运行的实际程序。
如果您有源代码(既然您提到了开发人员,我假设您有),那么您需要检查源代码中是否有可能失败但您假设会运行的代码,即您没有检查成功与否的代码。我对 ruby 一无所知,但我假设如果它调用其他程序,如果此调用失败,它将返回错误状态,并且可能未检查或记录此状态值。
但通常最好的方法是记录大量信息,然后您可以使用这些信息跟踪程序流程来确定为什么它有时有效,有时无效。