我正在尝试在运行 Spring Boot 应用程序时添加一个类路径,该应用程序使用以下命令运行
mvn spring-boot:run
Run Code Online (Sandbox Code Playgroud)
我目前可以使用插入到字段中的自定义参数将类路径文件夹添加到我的 Maven 测试中
但是,这种方法不适用于使用 mvn spring-boot:run 运行应用程序
好的,所以我对这种行为感到很困惑.它似乎不一致和奇怪,特别是因为我读过Mongo不应该支持全文搜索中的部分搜索术语.我使用的是Mongo DB社区服务器版本3.4.7.我正在从Mongo shell进行这些测试.
所以,我有一个分配了文本索引的Mongo DB集合.我创建了这样的索引:
db.submissions.createIndex({"$**":"text"})
Run Code Online (Sandbox Code Playgroud)
此集合中有一个文档包含以下两个值:
"克雷格"
"鲍勃博士".
我的目标是对包含多个匹配术语的文档进行文本搜索.
所以,这里是我运行的测试,以及它们不一致的输出:
单期,完整
db.submissions.find({"$text":{"$search":"\"Craig\""}})
Run Code Online (Sandbox Code Playgroud)
结果:获取包含此值的文档.
单期,部分
db.submissions.find({"$text":{"$search":"\"Crai\""}})
Run Code Online (Sandbox Code Playgroud)
结果:不返回任何内容,因为此部分搜索词与文档中的任何内容都不完全匹配.
多个条款,完整
db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bob\""}})
Run Code Online (Sandbox Code Playgroud)
结果:返回包含这两个术语的文档.
多个条款,一个部分
db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bo\""}})
Run Code Online (Sandbox Code Playgroud)
结果:尽管一个术语是部分术语,但返回包含两个术语的文档.文件中没有任何内容与"博士博士"相匹配
多个术语,两个部分
db.submissions.find({"$text":{"$search":"\"Crai\" \"Dr. Bo\""}})
Run Code Online (Sandbox Code Playgroud)
结果:返回包含两个术语的文档,尽管这两个术语都是部分和不完整的.文档中没有任何内容与"Crai"或"Bo博士"相匹配.
题
所以,这一切归结为:为什么?为什么会这样,当我使用只有一个值的部分术语进行文本搜索时,不会返回任何内容.当我用两个部分术语进行文本搜索时,我得到匹配结果?它看起来很奇怪而且不一致.
谢谢.
我有一个在Tomcat服务器上运行的记录器应用程序.我在spring boot框架上使用logback.下面是我的logback.xml文件
<configuration debug="true">
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/audit/audit.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>/var/log/audit/audit_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 50MB -->
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- keep 30 days' worth of history -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<append>true</append>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<logger name="com.logger.rest">
<appender-ref ref="FILE" />
</logger>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我的应用程序正确记录到/var/log/audit/audit.log.但在某些时候我需要删除日志文件.删除后,我注意到在调用记录器应用程序时没有创建新的audit.log文件.只有当我重新启动记录器应用程序时才会生成新的日志文件.
是否有任何方法可以绕过应用程序重新启动,以便logback自动创建一个新的audit.log文件(在创建日志记录信息时),以防它被删除
我正在尝试使用以下命令导出我的 mongo 集合之一:
"C:\Program Files\MongoDB\Server\3.2\bin\mongodump" -h 127.0.0.1 --port 3001 -d meteor
Run Code Online (Sandbox Code Playgroud)
我有一个带有我的 db 集合的 BSON 文件,但我想要它在一个 JSON 文件中。
我该怎么做?
我需要测试我的控制器方法,包括删除方法.这是部分控制器代码:
@RestController
@RequestMapping("/api/foo")
public class FooController {
@Autowired
private FooService fooService;
// other methods which works fine in tests
@RequestMapping(path="/{id}", method = RequestMethod.DELETE)
public void delete(@PathVariable Long id) {
fooService.delete(id);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的测试:
@InjectMocks
private FooController fooController;
@Before
public void setUp() {
this.mockMvc = MockMvcBuilders.standaloneSetup(fooController)
.setControllerAdvice(new ExceptionHandler()).alwaysExpect(MockMvcResultMatchers.content().contentType("application/json;charset=UTF-8")).build();
}
@Test
public void testFooDelete() throws Exception {
this.mockMvc.perform(MockMvcRequestBuilders
.delete("/api/foo")
.param("id", "11")
.contentType(MediaType.APPLICATION_JSON))
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());
}
Run Code Online (Sandbox Code Playgroud)
因错误的状态代码而导致测试失败:
java.lang.AssertionError:预期状态:200实际:400
在控制台日志中我也发现了这个:
2017-12-11 20:11:01 [main] DEBUG o.s.t.w.s.TestDispatcherServlet - DispatcherServlet with name '' processing DELETE request for …Run Code Online (Sandbox Code Playgroud) 我在 org.mockito.plugins.MockMaker 文件中添加了 mock-maker-inline 文本并将其放置在 test/resources/mockito-extensions
在我的测试用例中,我使用:
System system = mock(System.class);
when(system.getProperty("flag")).thenReturn("true");`
Run Code Online (Sandbox Code Playgroud)
但我收到以下异常:
org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to be 'a method call on a mock'.
For example:
when(mock.getArticles()).thenReturn(articles);
Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
Mocking methods declared on non-public parent classes is not supported.
2. inside when() you don't call method on mock but on some other object.
Run Code Online (Sandbox Code Playgroud)
感谢任何建议
我正在使用Spring Boot执行器来获取我的应用程序的信息。
我在pom.xml中添加了Spring Boot执行器依赖项,并在属性文件中添加了以下几行:
info:
app:
name: @project.name@
description: @project.description@
version: @project.version@
Run Code Online (Sandbox Code Playgroud)
我从pom.xml获取值:项目的名称,描述和版本。我还想获得构建时间并将其显示在/info端点上。
有什么建议么?
我是否还应该为此更改pom.xml文件?我尝试使用:
info.app.build-time=@build-time@
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
谢谢
我的日志被提取,管道并合并到elasticsearch中.多线事件很难跟踪和诊断.
而不是使用收集器和正则表达式来组合单个记录中的异常行,是否有一种方法可以使用logback配置将Exception堆栈跟踪放在一行上?
谁能解释一下JSoup中提供的Element对象和Node对象之间的区别?
在哪种情况/条件下最好使用哪种方法。
如何为 Map 创建参数捕获器?
我有遵循以下模式的代码:
import java.util.HashMap;
import java.util.Map;
public class CompoundClass {
public CompoundClass (String a, String b){
this.a = a;
this.b = b;
}
public String a;
public String b;
}
public class SubClass {
public void doSomeThingSubClass(Map<String, CompoundClass> mapSb) {
...
}
}
public class Example {
public SubClass sb;
public Example(SubClass sb) {
this.sb = sb;
}
public void doSomeThing () {
Map<String, CompoundClass> mapSb = new HashMap<>();
mapSb.put("x", new CompoundClass("aa","bb"));
sb.doSomeThingSubClass(mapSb);
}
}
Run Code Online (Sandbox Code Playgroud)
我想测试方法 doSomethingSubClass(mapSb) 是否被调用,因此我需要能够检查它被调用的参数。为此,我进行了以下单元测试: …
java ×8
mockito ×3
logback ×2
logging ×2
maven ×2
mongodb ×2
spring ×2
spring-boot ×2
export ×1
json ×1
jsoup ×1
junit ×1
mocking ×1
mongodump ×1
mongoexport ×1
rest ×1
slf4j ×1
spring-mvc ×1
tomcat ×1
unit-testing ×1