在持续集成服务器上使用logback和TestNG时的良好做法

尼古拉·克尼泽维奇

我们正在为项目使用logback和TestNG。当我们进行测试时(设置在logback-test.xml文件中),使用TRACE级别将Logback设置输出到控制台和文件。

现在,有两个问题。首先,在CI服务器(TeamCity)上运行此文件时,我们得到一个700 + MB的BuildLog文件,这很浪费空间(已经有一个日志文件),并使浏览器超载。其次,我们无法将断言错误打印在日志中。由于这些是被TestNG捕获的,因此它们仅显示在TeamCity的UI中,而不显示在文件日志中。

这里应该有什么好的方法?我正在考虑在控制台上以INFO级别进行日志记录(如果在TeamCity下运行),否则在TRACE上运行。我可以使用通过环境变量控制的过滤器来实现。对于第二个问题,我仍然不知道。

蒂娅·尼古拉

尼古拉·克尼泽维奇

为了将AssertionErrors打印在文件日志中,我最终实现了TestNG ITestListener

public class ListenerLogger implements ITestListener
{
  private static final Logger LOG = LoggerFactory.getLogger(ListenerLogger.class);

  @Override
  public void onTestStart(ITestResult result)
  {
    LOG.info("Starting {}.{} with parameters {}", result.getTestClass().getName(), result.getTestName(), result.getParameters());
  }

  @Override
  public void onTestSuccess(ITestResult iTestResult)
  {
    LOG.info("Test successful");
  }

  // This belongs to ITestListener and will execute only on the event of fail test
  public void onTestFailure(ITestResult result)
  {
    LOG.error("Test failed!", result.getThrowable());
  }
  ...
}

并将其添加到pom.xml我在CI下拥有的项目中:

<dependency>
  <groupId>my.awesome.project</groupId>
  <artifactId>ci-helper</artifactId>
  <version>1.0.1</version>
  <scope>test</scope>
</dependency>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

持续集成服务器上的集成测试

来自分类Dev

持续集成服务器是否应该经历自己的开发和登台周期?

来自分类Dev

如何测量持续集成服务器(Jenkins)的硬件规格?

来自分类Dev

Xcode服务器持续集成和git lfs

来自分类Dev

如何在持续集成构建服务器上使用git

来自分类Dev

如何将 UI 测试从持续集成服务器推送到 App Center 测试

来自分类Dev

内部服务器错误Xcode持续集成

来自分类Dev

为什么Atom,VSCode或Ava使用不止一种持续集成服务?

来自分类Dev

更新服务器的良好做法?[不影响当前正在运行的服务]

来自分类Dev

更新服务器的良好做法?[不影响当前正在运行的服务]

来自分类Dev

如何在不丢失 SQL 请求时间/服务器内存的情况下使用 PHP/MySQL 实现一个好的 MVC 模式?(良好做法)

来自分类Dev

ViewModel列表中的良好做法和DateTime的使用

来自分类Dev

对于平均的Rails项目,我应该选择哪种持续集成服务?

来自分类Dev

调用访问器方法的良好做法?

来自分类Dev

骨干僵尸的观点和良好做法

来自分类Dev

嵌套类和良好做法

来自分类Dev

在持续集成(无头环境-> mac os X服务器)中,使用需要访问GUI,xvfb / display emulator / X11转发的工具/库

来自分类Dev

测试和持续集成

来自分类Dev

打印到php集成服务器

来自分类Dev

使用Buildbot设置量角器的持续集成

来自分类Dev

使用持续集成时的数据库版本控制

来自分类Dev

为不同用户类型创建子域时控制器操作的良好做法

来自分类Dev

在viewController之间进行转换时,使用静态变量存储变量的良好做法吗?

来自分类Dev

使用vue和laravel API管理用户会话数据的良好做法

来自分类Dev

在binstar上持续集成的示例

来自分类Dev

使用自己的生成服务器时,Visual Studio在线生成分钟

来自分类Dev

填充对象时Java返回方法的良好做法

来自分类Dev

Xcode持续集成和Mercurial

来自分类Dev

与 Talend 和 Jenkins/Maven 的持续集成

Related 相关文章

  1. 1

    持续集成服务器上的集成测试

  2. 2

    持续集成服务器是否应该经历自己的开发和登台周期?

  3. 3

    如何测量持续集成服务器(Jenkins)的硬件规格?

  4. 4

    Xcode服务器持续集成和git lfs

  5. 5

    如何在持续集成构建服务器上使用git

  6. 6

    如何将 UI 测试从持续集成服务器推送到 App Center 测试

  7. 7

    内部服务器错误Xcode持续集成

  8. 8

    为什么Atom,VSCode或Ava使用不止一种持续集成服务?

  9. 9

    更新服务器的良好做法?[不影响当前正在运行的服务]

  10. 10

    更新服务器的良好做法?[不影响当前正在运行的服务]

  11. 11

    如何在不丢失 SQL 请求时间/服务器内存的情况下使用 PHP/MySQL 实现一个好的 MVC 模式?(良好做法)

  12. 12

    ViewModel列表中的良好做法和DateTime的使用

  13. 13

    对于平均的Rails项目,我应该选择哪种持续集成服务?

  14. 14

    调用访问器方法的良好做法?

  15. 15

    骨干僵尸的观点和良好做法

  16. 16

    嵌套类和良好做法

  17. 17

    在持续集成(无头环境-> mac os X服务器)中,使用需要访问GUI,xvfb / display emulator / X11转发的工具/库

  18. 18

    测试和持续集成

  19. 19

    打印到php集成服务器

  20. 20

    使用Buildbot设置量角器的持续集成

  21. 21

    使用持续集成时的数据库版本控制

  22. 22

    为不同用户类型创建子域时控制器操作的良好做法

  23. 23

    在viewController之间进行转换时,使用静态变量存储变量的良好做法吗?

  24. 24

    使用vue和laravel API管理用户会话数据的良好做法

  25. 25

    在binstar上持续集成的示例

  26. 26

    使用自己的生成服务器时,Visual Studio在线生成分钟

  27. 27

    填充对象时Java返回方法的良好做法

  28. 28

    Xcode持续集成和Mercurial

  29. 29

    与 Talend 和 Jenkins/Maven 的持续集成

热门标签

归档