小编tuk*_*tuk的帖子

Wiremock为一个存根网址返回404

我已经定义了wireMock服务器如下: -

    private WireMockServer wireMockServer;
        @Before
        public void preSetup() throws Exception {
          wireMockServer = new WireMockServer(56789);
          wireMockServer.start();
        };

        @Override
        @After
        public void tearDown() {
          wireMockServer.stop();
        }

        @Test
        public void testSendMatchingMessage() throws Exception {

          wireMockServer.stubFor(get(urlEqualTo("/orders/v1/ordersearch/"))
            .willReturn(aResponse().withStatus(200).withBody("<response>Some content</response>")));

       }

Run Code Online (Sandbox Code Playgroud)

但每当我点击下面的网址时

http://0.0.0.0:56789/orders/v1/ordersearch/?field=address%2Cfinance%2Cshipping&limit=10&page=2&q=createdFrom.gt%7E2016-01-11T10%3A12%3A13
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: -

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
    <title>Error 404 NOT_FOUND</title>
    </head>
    <body><h2>HTTP ERROR 404</h2>
    <p>Problem accessing /__files/orders/v1/ordersearch/. Reason:
    <pre>    NOT_FOUND</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>                                                
    <br/>                                                
    <br/>                                                
    <br/>                                                
    <br/>                                                
    <br/>                                                
    <br/>                                                
    <br/>                                                
    <br/>     
    </body>
    </html>
Run Code Online (Sandbox Code Playgroud)

有人可以让我知道我做错了什么吗?

java wiremock

13
推荐指数
1
解决办法
9221
查看次数

AWS Ubuntu 标准 6.0 中 java 11 和 java 17 之间 Instant.now() 的变化

我们将从 Java 11 (correto11) 迁移到 Java 17 (correto17)。作为其中的一部分,我们还必须将 Ubuntu 升级到standard:6.0AWSstandard:4.0中,如此处所述

我们观察到 Java 11 和 Java 17 中的Instant.now()输出有点不同。

例如,

System.out.println("Instant: " + Instant.now());
Run Code Online (Sandbox Code Playgroud)

给出如下输出

  • Java 11 -Instant: 2022-12-12T18:04:27.267229Z
  • 爪哇 17 -Instant: 2022-12-12T18:04:27.267229114Z

有人可以让我知道是什么原因造成的吗?我怎样才能使这两种情况下的行为相同?

java amazon-web-services java-11 java-17

10
推荐指数
1
解决办法
5611
查看次数

从Maven控制台删除logback`INFO`消息以进行junit测试

我把一个logback.xmlsrc/test/resources从我的Maven项目.我的目的是为我的测试和实际代码提供单独的logback配置.My logback.xml如下所示: -

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
    </encoder>
  </appender>
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- Daily rollover -->
      <fileNamePattern>/tmp/SolrUpdaterTest.%d{yyyy-MM-dd}.log</fileNamePattern>
      <!-- Keep 7 days' worth of history -->
      <maxHistory>7</maxHistory>
    </rollingPolicy>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>
  <root>
    <level value="ERROR" />
    <appender-ref ref="CONSOLE" />
    <appender-ref ref="FILE" />
  </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

虽然mvn test我已经设置了根错误级别,但是在我的maven控制台上堆满了大量的logback INFO消息,如下所示ERROR

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running …
Run Code Online (Sandbox Code Playgroud)

java junit junit4 maven-3 maven-surefire-plugin

8
推荐指数
1
解决办法
1240
查看次数

获取 golang 测试的分支覆盖率

如果我们可以为我的 golang 测试获得分支覆盖范围,有人可以向我建议一种方法吗?假设我有一个 golang 代码,如下所示:

package main

import (
    "fmt"
)

func HelloWorld(name string, printv int) string {
    if name == "tuk" || printv == 1 {
        fmt.Println("Hello tuk")
        return "Hello tuk"
    } else {
        fmt.Println("Who are you?")
        return "Who are you?"
    }
}
Run Code Online (Sandbox Code Playgroud)

相应的测试文件如下所示:

package main

import "testing"

func TestHelloWorld(t *testing.T) {
    r := HelloWorld("tuk", 0)
    if r != "Hello tuk" {
        t.Error("Test Failed")
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我执行下面的测试命令,它只是给我语句覆盖率:

go test -coverprofile=cover.out .
ok      test    0.007s  coverage: 60.0% of statements
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让我也获得分支机构的覆盖范围吗?

go

8
推荐指数
1
解决办法
4437
查看次数

Python 重试包 - tenacity:如何记录异常的根本原因?

正如在这个问题中所讨论的,我正在利用坚韧来重试。

玩具代码如下所示

import logging
from tenacity import retry
import tenacity


@retry(wait=tenacity.wait_incrementing(start=10, increment=10, max=100), stop=tenacity.stop_after_attempt(3))
def print_msg():
    logging.info('Hello')
    logging.info("World")
    raise Exception('Test error')


if __name__ == '__main__':
    logging.basicConfig(
        format='%(asctime)s,%(msecs)d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s',
        datefmt='%d-%m-%Y:%H:%M:%S',
        level=logging.INFO)
    logging.info('Starting')
    print_msg()
Run Code Online (Sandbox Code Playgroud)

输出如下所示

21-11-2018:12:40:48,586 INFO     [retrier.py:18] Starting
21-11-2018:12:40:48,586 INFO     [retrier.py:8] Hello
21-11-2018:12:40:48,586 INFO     [retrier.py:9] World
21-11-2018:12:40:58,592 INFO     [retrier.py:8] Hello
21-11-2018:12:40:58,592 INFO     [retrier.py:9] World
21-11-2018:12:41:18,596 INFO     [retrier.py:8] Hello
21-11-2018:12:41:18,596 INFO     [retrier.py:9] World
21-11-2018:12:41:18,596 ERROR    [retrier.py:22] Received Exception
Traceback (most recent call last):
  File "/Users/dmanna/PycharmProjects/demo/retrier.py", line …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-tenacity

8
推荐指数
1
解决办法
1万
查看次数

Mockito 3.6:在@Before或@BeforeClass中与JUnit4一起使用mockStatic

Mockito 3.6 支持在块下模拟静态方法try-with-resources,如此处所述

有人可以让我知道静态方法是否使用 Powermock 进行模拟,@Before或者@BeforeClass可以Mockito.mockStatic用来替换它们而无需完全重写测试类吗?

java mockito java-8 mockstatic

8
推荐指数
1
解决办法
7767
查看次数

调用抽象类的私有方法

我有一个要求,我必须调用抽象类的私有方法.

假设抽象类如下所示: -

public abstract class Base {

    protected abstract String getName();

    private String getHi(String v) {
        return "Hi " + v;
    }
}
Run Code Online (Sandbox Code Playgroud)

有些人可以告诉我有没有办法可以打电话getHi(可能是通过Reflection或其他方式),以便我可以测试出来?我正在使用Junit 4.12Java 8

我已经解决了这个问题,但这里的方法在抽象类中并不是私有的.

我也经历过这个问题,即使这个问题也没有谈到抽象类中的私有方法.

我不是在这里问我们是否应该测试私有方法或者测试私有方法的最佳策略是什么.网上有很多关于此的资源.我只是想问一下如何在java中调用抽象类的私有方法.

java junit junit4

6
推荐指数
1
解决办法
1472
查看次数

单元测试类中测试的执行时间通过maven surefire-report在一个文件中以汇总格式显示

任何人都可以告诉我如何通过单个文件中的单元测试类中的每个单元测试所花费的时间maven-surefire?我看到我target/surefire-report的每个测试都有文件.基本上我正在寻找一个总结了所有执行时间的文件.如果可能,还要按每个测试的执行时间对结果进行排序.

我在MacOSX 10.12.6上使用maven 3.5和surefire-plugin 2.4.2.

java unit-testing maven-3 maven maven-surefire-plugin

6
推荐指数
1
解决办法
1518
查看次数

slf4j-log4j12与log4j之间的区别

在一个项目中,pom.xml我看到了如下的依赖

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.5</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

有人能让我知道slf4j-log4j12& 之间的区别是log4j什么?

java log4j slf4j slf4j-api

6
推荐指数
1
解决办法
2478
查看次数

使用 Maven 3.5 运行 jacoco 检查目标

我在 pom 中的 jacoco 插件配置如下

<plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.5.201505241946</version>
              <executions>
                <execution>
                  <id>pre-unit-test</id>
                  <goals>
                      <goal>prepare-agent</goal>
                  </goals>
                  <configuration>
                    <destFile>${jacoco.ut.execution.data.file}</destFile>
                  </configuration>
                </execution>
                <execution>
                  <id>merge-execs</id>
                  <phase>pre-site</phase>
                  <inherited>false</inherited>
                  <goals>
                      <goal>merge</goal>
                  </goals>
                  <configuration>
                   <fileSets>
                     <fileSet>
                       <directory>${basedir}</directory>
                       <includes>
                         <include>**/target/*.exec</include>
                       </includes>
                     </fileSet>
                   </fileSets>
                    <destFile>${jacoco.ut.merged.exec}</destFile>
                  </configuration>
                </execution>
                  <execution>
                      <id>jacoco-check</id>
                      <phase>verify</phase>
                      <goals>
                          <goal>check</goal>
                      </goals>
                      <configuration>
                          <rules>
                              <rule>
                                  <element>BUNDLE</element>
                                  <limits>
                                      <limit>
                                          <counter>LINE</counter>
                                          <value>COVEREDRATIO</value>
                                          <minimum>0.80</minimum>
                                      </limit>
                                  </limits>
                              </rule>
                          </rules>
                          <dataFile>${jacoco.ut.merged.exec}</dataFile>
                      </configuration>
                  </execution>
             </executions>
         </plugin>
Run Code Online (Sandbox Code Playgroud)

但是当我运行时mvn jacoco:check它失败并出现以下错误

[ERROR] Failed to execute goal org.jacoco:jacoco-maven-plugin:0.7.5.201505241946:check (default-cli) on project main: The parameters 'rules' for …
Run Code Online (Sandbox Code Playgroud)

java maven jacoco jacoco-maven-plugin

6
推荐指数
1
解决办法
3627
查看次数