单元测试和生产代码的单独服务提供者

问题描述

我正在使用 ServiceLoader 动态加载插件。 为了进行单元测试,我想模拟这些插件的一些行为。 这些模拟插件应该在单元测试时使用,而不是在构建项目时使用。 但是,如何做到这一点?

我觉得这个问题是特定于 IDE/构建工具的,因此我使用的是 Eclipse。

项目结构:

  • 代码
    • 应用
      • app.java
    • 刮板
      • ScraperController.java
      • Scraper.java
  • 刮板
  • 测试
    • 模型
      • FailingScraperMock.jar
      • ...
    • unit_tests
      • ServiceLoaderWithProvidedMockScrapersTest.java
      • ...

scraper.Scraper.java 是提供者接口

Scraper 是所有 Scraper-Providers 去的地方

我试图排除源文件夹的模拟插件: src/ 。 要么我做错了,要么这不是我想要做的。

希望得到任何帮助/信息。

解决方法

如果您将测试文件夹 (/tests) 标记为测试代码,则应将其从应用程序构建中排除。