unit-testing - 如何在grails test-app中查看网络流量? -也许是RESTClient日志记录?

标签 unit-testing grails logging

我使用仅带有spock单元测试的grails项目来进行Web调用以验证一组Web服务。它使用RESTClient进行调用。

我最近从Grails 2.0.0升级到2.3.4,并将所有依赖项更新为最新的。

在GGTS下运行旧环境的单元测试中,我曾经看到过所有网络流量的踪迹-对于调试问题特别有用。现在缺少此跟踪,而是在每次测试开始时看到以下内容发送到stderr:

log4j:WARN No appenders could be found for logger (groovyx.net.http.RESTClient).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

我在Setup.groovy中对log4j配置进行了很多修改,但是没有任何效果(实际上,我知道单元测试通常不会设置log4j)。

如何修复最新的groovyx.net.http.RESTClient以提供网络跟踪?
  • 查尔斯
  • 最佳答案

    啊-事实证明Config.groovy中的log4j配置不适用于GGTS的测试。我在source / groovy中创建了一个log4j.xml文件(即在类路径上),并在其中找到了痕迹。

    但是当我作为grails test-app运行测试时,Config.groovy配置确实起作用。去搞清楚!

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
        <appender name="console" class="org.apache.log4j.ConsoleAppender">
            <param name="Target" value="System.out" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="  %c{1} - %m%n" />
            </layout>
        </appender>
    
        <category name="groovyx.net.http">
            <priority value="DEBUG" />
        </category>
    
        <!-- Use DEBUG to see basic request/response info;  
             Use TRACE to see headers for HttpURLClient. -->
        <category name="groovyx.net.http.HttpURLClient">
            <priority value="INFO" />
        </category>
        <category name="groovyx.net.http.RESTClient">
            <priority value="INFO" />
        </category>
    
        <category name="org.apache.http">
            <priority value="INFO" />
        </category>
        <category name="org.apache.http.headers">
            <priority value="INFO" />
        </category>
        <category name="org.apache.http.wire">
            <priority value="DEBUG" />
        </category>
    
        <root>
            <priority value="INFO" />
            <appender-ref ref="console" />
        </root>
    </log4j:configuration>
    

    关于unit-testing - 如何在grails test-app中查看网络流量? -也许是RESTClient日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24779844/

    相关文章:

    angularjs - Jasmine 的代码覆盖率中未涵盖的语句

    Angular 2 测试 - 异步函数调用 - 何时使用

    javascript - AVA:为每个测试用例设置不同的超时

    python - 日志记录的 MemoryHandler 中的容量度量是什么?

    javascript - 我正在寻找一个带有缩进和着色的 javascript 记录器(它可以!特定于浏览器)

    asp.net - 在 ASP.NET MVC 框架中拦截请求

    java - 如何在 Hibernate 中修复 'A rollback database operation after a JUnit test'(没有 Spring)?

    grails - 无法编译Grails项目

    grails - JBoss EAP 6中的Grails 3应用为404

    session - 如何模拟 RESTful 服务(Grails、Shiro)的 session cookie?