我们有一个API,它通过暴露的接口在类中使用。该API适用于UNIX系列,并假设每个UNIX都有/ bin / sh。因此,当在win32下运行junit测试时,我们得到:
无法运行程序“/ bin / sh”
它是一个捕获22的情况还是有机会解决它?也许存在一些除了junit之外的框架,可以在UNIX下轻松运行。感谢。
更新
代码是可移植的,可以在多个操作系统(java)上运行。 我想写一些单元测试(这是我自己的主动),部分代码作为apis(在另一个部门测试)暴露给我。现在,当我为自己的代码运行测试时,因为它依赖于apis代码,它会做一些魔术,比如调用shell脚本,这在原始win32下是不存在的(我们使用win32 + ssh进行开发)。
目前不能选择切换到Linux。 虽然通过nx客户端将Eclipse安装到unix + gui上是一个选择。希望它澄清一点。
答案 0 :(得分:1)
你的问题不清楚。显然,如果代码是针对Unix的,它将无法在Win32下运行,因此单元测试失败是很自然的(也可以)。你为什么要测试Win32下的Unix代码?
如果您无法在Unix下进行测试(或将代码重写为与平台无关),则可以选择以下选项:
但是你真的应该首先清楚你要如何测试特定于平台的功能。
答案 1 :(得分:0)
它是一个捕获22的情况还是有机会解决它?
如果可以的话,如果您的代码不是可移植的(我不会讨论这个),为什么要在Windows上构建它?也许您可以添加一个平台检查,以避免在Windows上运行时调用“Unix”API。或者也许您可以在Windows上安装cygwin以使sh
可用。
也许除了junit之外的一些框架可以在UNIX下轻松运行。感谢。
咦?也许我没有得到它,但我的理解是你的你的代码有问题,而不是JUnit。如果我错了,请澄清你的期望。