所以这是我的项目:
我正在构建一个中央界面/仪表板来呈现多个产品版本的几种测试类型的测试数据。我们在我们的大型产品上使用 TestNG,虽然没有编写足够的测试,但这是另一个话题的讨论。目录结构如下所示:
文件系统/productVersion+testType/uniqueDateAndBuildID/testng-results.xml
该 results.xml 文件包含带有子测试标签的标签,这些标签对应于文件系统目录,然后是包含实际测试用例结果(通过、失败等)的 xml 文件。XML 解析和文件系统遍历都很好,很好/可靠。
控制流程:客户端访问主页--> 服务器打开属性文件--> 服务器检查Web 服务器属性(Websphere 或Tomcat,如果我在本地工作)--> 服务器根据它设置一堆常量。常量包括:根文件系统目录、文件系统分隔符(翻译)、“类似类型(在不同平台上基本相同的测试)”以及要附加到的基本 URL。--> 服务器然后再读取一些属性文件并进行所有的 XML 处理。结果缓存在内存中以及使用 ObjectOutputStream 的文件系统中。--> 一个大的结果列表被发送回客户端进行 UI 处理/显示。
这是我遇到问题的地方:即使它们位于共享文件夹中,我也无法在客户端上访问那些全局变量(包含/设置在 Globals 类中......我知道不好 :-/ )。如果您想知道为什么我不能再次加载属性,那是因为客户端是 GWT 化的 Javascript,它不包含 File()。所以我的下一个想法是,在阅读了一些上层 Java 之后,也许可以使用一个 Globals 单例对象并将其也传回......但这似乎同样糟糕,如果不是不可能的话。 这里的建议会很棒。
整个事情是非常紧密耦合的,我之前的 Java 教育还没有真正进入。而且由于这只是供开发人员检查的内部门户,因此实际测试我的代码似乎没有多大意义。只要它正确显示、正确记录并优雅地处理错误,对吗?总而言之,它的课程少于 15 节,所以我猜这并不是什么大不了的事。我应该重构以清理所有内容并使其“更好的Java”,注释所有内容以清楚地描述控制流,还是因为它很小而不必太担心它?我知道将来在设计它们之前要多考虑一些事情,但是我真的不知道从开始接触到的大量高级 Java 原理。
经过一番思考后进行编辑,想出了一个可能的解决方法。怎么样,不是只传回一个结果列表,而是传回一些其他自定义列表实现,其中包括一个全局“标题”对象?我可以保存状态。