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

发布于 2024-09-14 03:23:19 字数 203 浏览 7 评论 0原文

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

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

这在 Eclipse 中可能吗?

I am trying to set up some unit tests, which use the database. I would like to use a test database on the developer's computer instead of on the production database. The method I have in place now is to check an environment variable when connecting to the database, and if that variable exists to connect to the local one instead of the production one.

I can set environment variables in Eclipse through the Run Configurations, but I want this to happen whenever a JUnit test is run (just in case).

Is this possible in Eclipse?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

末蓝 2024-09-21 03:23:19

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

在测试中使用环境变量通常表明配置在代码、IME 内部进行得太深。在可能的情况下,我发现通过依赖注入构建对象所需的一切会更好,使该代码与计算注入内容的配置代码分开。

Why don't you inject the database connection into the logic which needs testing, and only deal with environment variables in your startup code (which generally doesn't need unit testing)?

Using environment variables in tests is generally a sign that configuration is happening too deeply inside your code, IME. Where possible, I find it much better to construct objects with everything they need via dependency injection, keeping that code separate from the configuration code which works out what to inject.

2024-09-21 03:23:19

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

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

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

I think hard-coding connection info or test/production switch is not the best idea.

Basically, we have DB connection information in property file. At unit testing, we use another property file which contains connection info for test database. (A lightweight in-memory DB may be optimal for unit testing.)

Unit tests usually have their own setup fixtures which composes a basic environment for each test cases, so it shouldn't be a problem to use a dedicated property file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文