我已经定义了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 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)
给出如下输出
Instant: 2022-12-12T18:04:27.267229ZInstant: 2022-12-12T18:04:27.267229114Z有人可以让我知道是什么原因造成的吗?我怎样才能使这两种情况下的行为相同?
我把一个logback.xml在src/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) 如果我们可以为我的 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)
有什么方法可以让我也获得分支机构的覆盖范围吗?
玩具代码如下所示
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) Mockito 3.6 支持在块下模拟静态方法try-with-resources,如此处所述。
有人可以让我知道静态方法是否使用 Powermock 进行模拟,@Before或者@BeforeClass可以Mockito.mockStatic用来替换它们而无需完全重写测试类吗?
我有一个要求,我必须调用抽象类的私有方法.
假设抽象类如下所示: -
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.12和Java 8
我已经解决了这个问题,但这里的方法在抽象类中并不是私有的.
我也经历过这个问题,即使这个问题也没有谈到抽象类中的私有方法.
我不是在这里问我们是否应该测试私有方法或者测试私有方法的最佳策略是什么.网上有很多关于此的资源.我只是想问一下如何在java中调用抽象类的私有方法.
任何人都可以告诉我如何通过单个文件中的单元测试类中的每个单元测试所花费的时间maven-surefire?我看到我target/surefire-report的每个测试都有文件.基本上我正在寻找一个总结了所有执行时间的文件.如果可能,还要按每个测试的执行时间对结果进行排序.
我在MacOSX 10.12.6上使用maven 3.5和surefire-plugin 2.4.2.
在一个项目中,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什么?
我在 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)