我一直在谷歌上搜索,但找不到符合我特定情况的答案。
我正在研究一个项目文件管理器类,并发现它的开发在Windows和Unix文件系统上表现不同。
更具体地说,它正在补偿Unix中的案例敏感性:当找不到文件时,管理器将以不区分大小写的方式查找它。
在更改此代码之前,我想实现一些单元测试。但是,我们的开发机器和我们的CIP都在Windows上,而且我没有可用的Unix机器。机器和IDE由客户提供。虚拟化不是一种选择,双启动甚至更少。
有没有办法测试Windows和Unix模式,同时与构建平台无关?我认为理想的做法是在一个模式下运行整个Test Class,然后在另一个模式下运行,但即使是更实际的解决方案也会很棒。
在生产模式下,使用Spring初始化文件管理器,但它们是链的最低级别,直接使用java.io。
版本:Java 6,JUnit 4.9
答案 0 :(得分:1)
你可以通过wubi安装它来轻松双启Ubuntu。
我已经了解到单元测试不应该出于不同的原因访问文件系统(速度就是其中之一)。
对于Java 6来看看theese: http://docs.oracle.com/javase/6/docs/api/javax/tools/JavaFileManager.html http://docs.oracle.com/javase/6/docs/api/javax/swing/filechooser/FileSystemView.html
如果您使用Java 7,这可能对您有所帮助: http://download.oracle.com/javase/7/docs/technotes/guides/io/fsp/filesystemprovider.html
答案 1 :(得分:0)
你可以使用VM在unix上测试它。 Oracle的Virtual Box是一款优秀的虚拟化软件。安装Ubuntu,或Fedora,或其他一些基于Unix的OS'磁盘映像。将文件传输到VM。您可以直接从源代码管理中检出VM,你应该好好去。至少我认为这就是你想做的事:在windows和linux中测试你的软件,但目前没有你可以使用的linux