当前位置: 首页 > 知识库问答 >
问题:

在第谷Surefire测试中使用来自Eclipse轨道的slf4j

冯开诚
2023-03-14

我目前正在尝试在我们基于Eclipse的产品中使用SLF4J作为Eclipse Orbit项目的捆绑包来设置日志记录功能

我详细使用:

org.slf4j.api
ch.qos.logback.classic
ch.qos.logback.core
ch.qos.logback.slf4j

当我尝试使用SLF4J日志api运行测试用例时,在Tycho构建中,我收到了错误消息

19:05:50 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
19:05:50 SLF4J: Defaulting to no-operation (NOP) logger implementation
19:05:50 SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Surefire仅使用Eclipse产品的目标平台和插件ManiFestival. MF文件来检测依赖项。由于ch.qos.logback.slf4j是一个片段,因此不可能在清单中直接依赖。

我的假设是,在测试执行期间,片段不是运行时配置的一部分。

我希望我的问题不要太愚蠢,但是我如何配置环境,以便将片段添加到运行时配置中,SLF4J可以解决对StaticLoggerBinder的请求?

共有2个答案

左丘恩
2023-03-14

虽然这是一篇老帖子,但我最近遇到了同样的问题,希望我的回答能有所帮助。解决方案是添加ch.qos。回复。slf4j片段的jar到JUnit测试类路径。您可能需要添加驻留在eclipse/plugins文件夹中的jar,以确保版本与eclipse安装上的插件匹配。

鄢松
2023-03-14

我的假设是,在测试执行期间,片段不是运行时配置的一部分。

听起来我不是问题的根源。您需要以某种方式指定slf4j背后的实现。

顺便说一句,你的产品也会有同样的问题。你如何解决那里的问题?

针对这两个问题的建议是创建(或重复使用)一个引用您想要的片段的功能。一旦你有了这样的功能,你就可以

>

  • 将其包含在产品中,以确保在prduct安装中进行日志记录,以及

    将它包含在测试运行时中,以使日志记录在那里工作。您可以使用以下配置来完成此操作:

    <plugin>
      <groupId>org.eclipse.tycho</groupId>
      <artifactId>target-platform-configuration</artifactId>
      <version>${tycho-version}</version>
      <configuration>
        <dependency-resolution>
          <extraRequirements>
            <requirement>
              <type>eclipse-feature</type>
              <id>feature-referencing-the-logging-implementation-fragment</id>
              <versionRange>0.0.0</versionRange>
            </requirement>
          </extraRequirements>
        </dependency-resolution>
      </configuration>
    </plugin>
    

  •  类似资料:
    • 我正在使用firebase Auth进行身份验证,使用google进行身份验证,当直接安装到模拟器或通过apk时,它会正常工作。但在google play的内部测试轨道上发布后,它不会通过登录屏幕, 我已经做了所有基本的事情,比如添加SHA1和SHA256指纹。 请帮忙

    • 问题内容: 我已经使用JUnit 4和spring-test库编写了一些JUnit测试。当我在Eclipse中运行测试时,可以正常运行并通过。但是,当我使用Maven运行它们(在构建过程中)时,它们无法给出与Spring相关的错误。我不确定是什么引起了问题,JUnit,Surefire或Spring。这是我的测试代码,spring配置以及从Maven获得的异常: PersonServiceTest

    • 我已经成功地完成了将APK发布到内部测试轨道的过程。但是当我尝试使用下面截图中的“查看Google Play”链接在Google Play商店上下载应用程序时... ...但结果却是同样的消息,声明找不到该应用程序。 以前有人经历过这个问题吗?我已经联系了谷歌的支持部门寻求建议,但我认为这也是值得尝试的,看看是否有人对下一步尝试有任何建议。多谢了。

    • 我正在使用Maven构建我的项目。我目前将测试分为不同的层次结构: 单元测试- 这里是我的部分: <代码> 我尝试了,它运行所有的测试——单元测试、集成测试和外部测试。但是,对于默认测试套件,我只想运行单元测试。 我如何在Maven中实现这一点? 裁判:

    • 问题内容: 我想知道如何通过使用方程ay 2 + bxy + cx + dy + e = x 2来绘制椭圆轨道吗? 我首先确定了a,b,c,d,e常数,现在我假设通过给定x值,我将获得y,这将给我想要的图形,但我不能通过使用matplotlib来完成。 如果您能帮助我,我将不胜感激! 编辑:我在这里添加了代码。 编辑:这是常量值: 问题答案: 可以解决y作为x的函数的问题 问题是每个有效x都有y的

    • Rails文档很好地解释了如何处理只需要has_many-belongs_to关系的自连接。在本例中,一个雇员(作为经理)可以有许多雇员(每个雇员都是下属)。 但是,如何处理has_many has_many自加入(我听说这被称为双向循环关联)? 例如,您如何处理员工可以有许多下属作为经理的情况,也可以有许多经理作为下属的情况? 或者,换句话说,一个用户在哪里可以关注很多用户,被很多用户关注?