来源:Java 8
IDE:Eclipse
测试:JUnit
构建工具:maven
打包:WAR
我需要JUnit测试我的操作Excel文件的代码。我计划将一些示例Excel文件保存在src/test/resources
文件夹中。使用@before
,我将在src/test/resources
中创建一个新文件夹(带有时间戳),并在其中复制示例Excel文件。然后测试将对这些文件进行操作,然后删除时间戳文件夹@after
测试。
我的问题是:
>
修改这个目录中的文件是错误的做法,因为它是代码库的一部分?
当我的代码在使用Maven的CI中运行时,这是否有意义。
如果对1的回答是肯定的,那么是否有可取的替代方法。
修改这个目录中的文件是很糟糕的做法,因为它是代码库的一部分?
即使您更改了“only”测试目录的内容,这也不是一个好主意,因为如果您的测试没有按照它们应该的行为(假设它们留下了一个未处于预期和原始状态的测试资源文件),那么您可能会在测试阶段产生副作用。
当我的代码在使用Maven的CI中运行时,这是否有意义。
我不明白为什么在这种环境下它或多或少会是个问题。我认为最糟糕的是在开发环境中,因为如果测试执行产生了副作用,您可能会做出不希望的事情。
如果对1的回答是肯定的,那么是否有可取的替代方法。
实际上,您可以在src/test/resources
中的新文件夹中复制数据。我建议您简单地将数据复制到一个文件夹中,这样您就不会在代码中产生任何副作用:target/test-
。
测试-类
目录不用于工件的打包。
糟糕的练习。使用参考资料中的文件作为模板。即使用
Path target = Files.createTemp...
Files.copy(MyClass.class.getResourceAsStream("/..."), target);
如果您愿意,在临时目录中的结果将在将来的某个时刻被清理。
在某些情况下,可以写入目标构建目录,而不是临时的directoy。例如您自己的maven报告插件。然而,对于测试,上述操作应该做到。
我有一个java,gradle项目。我的少年 选择一些配置 Junit中拾取此文件的代码是 当我奔跑时 这个很好用。Junit能够从csv文件中拾取数据。 当我在Eclipse中运行JUnit时,即通过Shift Alt X T,然后JUnit以空指针异常中断。 我明白原因。当我在eclipse中运行Junit时,它会在同一个文件夹中查找该文件,但没有找到它,因此失败。但是,当我使用gradle运
新手来了!我在SO上发现了很多类似的问题,但没有一个给我一个明确的答案。 我尝试过的一个可能的解决方案是不运行这些脚本(从'classpath:db/schema.sql'中删除init=runscript\\从'classpath:db/data.sql'中删除runscript),在测试之前以编程方式创建一些对象并将它们持久化到数据库,然后编写test,但我认为从脚本填充数据比在每个测试类中编
问题内容: 我正在尝试从软件包中的src /文件夹中获取图像,但是没有成功。 有人建议吗? 问题答案: 是否将其复制到构建代码的任何地方?作为一个在目录没有帮助,如果在执行时类是在目录(或jar文件)。 另请注意,如果您的课程在一个包中,则默认情况下它将相对于该包起作用。因此,如果您的包是foo.bar,它将在寻找。如果要使其绝对,则可以使用,也可以在字符串的开头放置前导: 要么 当然,如果目录
我正在使用gradle构建uber jar,我使用的插件https://github.com/johnrengelman/shadow 我在文件夹中有一个json文件,我在下面的代码中使用它 当我运行uber Jar时,面临以下问题 我的build.gradle是这样的
我正在尝试访问src/main/Resources/XYZ/view文件夹中的xsd,其中XYZ/view文件夹是由我创建的,文件夹具有我需要进行xml验证的abc.xsd。 当我每次尝试访问xsd时,结果为null, 我试过了, 1) 2) 以及我为获取资源或类加载器等而进行的更多跟踪。 最后我得到了xsd, 文件文件 = 新文件(新类路径资源(“/src/main/resources/XYZ/
我有一个spring boot应用程序,我想在其中外部化消息。我将这些消息分为错误、信息和成功。因此,我创建了如下所示的嵌套文件夹结构: 并且,我正试图通过以下方式从服务中访问它: 这给了我以下例外情况: missingResourceException:找不到bundle的基本名称错误,区域设置为 但是,如果我将属性文件保存在下面的文件夹之外,它可以正常工作: null