Java 在Eclipse中为所有JUnit测试设置环境变量

Java 在Eclipse中为所有JUnit测试设置环境变量,java,eclipse,junit,Java,Eclipse,Junit,我正在尝试设置一些使用数据库的单元测试。我想在开发人员的计算机上使用测试数据库,而不是在生产数据库上。我现在采用的方法是在连接到数据库时检查环境变量,如果该变量存在,则连接到本地变量而不是生产变量 我可以通过运行配置在Eclipse中设置环境变量,但我希望每当运行JUnit测试时都会发生这种情况(以防万一) 这在Eclipse中可能吗?为什么不将数据库连接注入到需要测试的逻辑中,并且只处理启动代码中的环境变量(通常不需要单元测试) 在测试中使用环境变量通常表明配置在代码IME中发生得太深。在可能

我正在尝试设置一些使用数据库的单元测试。我想在开发人员的计算机上使用测试数据库,而不是在生产数据库上。我现在采用的方法是在连接到数据库时检查环境变量,如果该变量存在,则连接到本地变量而不是生产变量

我可以通过运行配置在Eclipse中设置环境变量,但我希望每当运行JUnit测试时都会发生这种情况(以防万一)


这在Eclipse中可能吗?

为什么不将数据库连接注入到需要测试的逻辑中,并且只处理启动代码中的环境变量(通常不需要单元测试)


在测试中使用环境变量通常表明配置在代码IME中发生得太深。在可能的情况下,我发现最好通过依赖项注入来构造具有所需一切的对象,将代码与确定注入内容的配置代码分开。

我认为硬编码连接信息或测试/生产切换不是最好的主意

基本上,我们在属性文件中有DB连接信息。在单元测试中,我们使用另一个属性文件,其中包含测试数据库的连接信息。(对于单元测试而言,内存中的轻量级DB可能是最佳选择。)


单元测试通常有自己的设置装置,它构成了每个测试用例的基本环境,因此使用专用属性文件应该不会有问题。

Hmmmmm。。。。可能需要做一些重新分解才能使它工作。。。虽然这似乎是一个更好的解决方案,比混合配置和逻辑,如我目前。。。