在不同环境下测试的最佳方法?

时间:2009-04-06 03:09:37

标签: svn path cross-platform

我正在开发一个需要在 Mac OS X和Windows 上工作的Java项目。有许多变量可以将路径存储到各种资源和文件中。

处理它们的最佳方法是将它们全部放在单独的类(例如,常量)中,并为SVN中的文件维护两个分支吗?

更新: 不仅仅是路径分隔符的问题(正向与反向斜杠)。两个系统的目录结构都不同。在Mac上,我将资源保存在各种目录中。比如,某处的图像,某处的日志文件。在Windows上,我可能会使用完全不同的目录。所有目录都不必是一棵树的一部分(即它们不在一个主目录下的不同目录中,称为“资源”或其他东西)。这不一定是糟糕的编程习惯。有时您需要访问系统文件或系统范围的公共目录,而您无法将它们放在一个最高目录下

3 个答案:

答案 0 :(得分:2)

您是否考虑过使用属性文件? Apache commons config应该是跨平台的,它可以智能地处理属性文件的位置。

这种方式只有一个构建版本,但配置文件是特定于操作系统的,维护,构建和测试应该要少得多。

答案 1 :(得分:0)

如果您使用的是JDK 1.4或更高版本,并且用户需要能够更改这些路径,则可以使用内置的Preferences API来存储/更新它们。如果没有,您可以为每个操作系统定义常量,并调用System.getProperty(os.name)以确定要使用哪个操作系统。这仍然可以防止您必须为每个平台分别构建。

答案 2 :(得分:0)

不确定究竟是什么问题。 (Java的设计与平台无关。)

查看java.io.File静态常量pathSeparator,pathSeparatorChar,separator和separatorChar。如果你有一个关于如何组织资源的常量树结构(即点格式:resources.data.test.woof.txt),你可以使用File.separatorChar而不是'。'并且您拥有系统特定的路径。

另外,不要忽视信息量很大的System.getProperty()方法。

这应该足以在任何FS上走任何路径。