springboot项目单元测试

2023-05-16

    springboot项目和普通的spring项目一样也可以做单元测试,一般是测试service层的方法,在进行项目构建的时候,需要在springboot默认依赖的基础上,再加上spring-boot-starter-test依赖,pom.xml文件如下所示:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<parent>
  	<groupId>org.springframework.boot</groupId>
  	<artifactId>spring-boot-starter-parent</artifactId>
  	<version>2.0.5.RELEASE</version>
</parent>

<dependencies>
     <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
     </dependency>
     <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <dependency>
    	<groupId>mysql</groupId>
    	<artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-security</artifactId>
    </dependency>
</dependencies>

这里我们假定使用jpa操作数据库,然后我们需要定义实体类,编写dao层接口,service层接口。这里以User实体为例。

BaseEntity.java

package com.xxx.securitydemo.domain;
import java.util.Date;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
@MappedSuperclass
public class BaseEntity {
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	protected Integer id;
	protected Date modifyDate;
	protected Date createDate;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public Date getModifyDate() {
		return modifyDate;
	}
	public void setModifyDate(Date modifyDate) {
		this.modifyDate = modifyDate;
	}
	public Date getCreateDate() {
		return createDate;
	}
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
}

User.java

package com.xxx.securitydemo.domain;

import javax.persistence.Entity;

@Entity
public class User extends BaseEntity{
	private String username;
	private String password;
	private String mobile;
	private int age;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}

配置类,本来这个示例是用来做springboot+security的,所以类名有些特殊意义,这里不妨碍使用,主要配置一个密码加密实体类,在单元测试类中会用到:

package com.xxx.securitydemo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

@Configuration
public class SecurityConfig {
	@Bean
	public PasswordEncoder passwordEncoder() {
		return new BCryptPasswordEncoder();
	}
}

UserDao.java

package com.xxx.securitydemo.dao;
import org.springframework.data.jpa.repository.JpaRepository;
import com.xxx.securitydemo.domain.User;
public interface UserDao extends JpaRepository<User,Integer>{
}

UserService.java

package com.xxx.securitydemo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xxx.securitydemo.dao.UserDao;
import com.xxx.securitydemo.domain.User;
@Service
public class UserService {
	@Autowired
	private UserDao userDao;
	public User findById(Integer id) {
		return userDao.findById(id).orElse(null);
	}
	
	public User save(User user) {
		return userDao.save(user);
	}
	
}

启动类 App.java

package com.xxx.securitydemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
    public static void main( String[] args ){
    	SpringApplication.run(App.class, args);
    }
}

application.yml

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql:///huali?useUnicode=true&useSSL=false&characterEncoding=UTF-8
    username: root
    password: root
  jpa:
    hibernate:
      ddl-auto: update

单元测试类 UserServiceTest.java

package com.xxx.securitydemo;
import static org.junit.Assert.assertEquals;
import java.util.Date;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.test.context.junit4.SpringRunner;
import com.xxx.securitydemo.domain.User;
import com.xxx.securitydemo.service.UserService;
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {
	@Autowired
	private UserService userService;
	
	@Autowired
	private PasswordEncoder passwordEncoder;
	
	@Test
	public void insert() {
		User user = new User();
		user.setUsername("hadoop");
		String password = passwordEncoder.encode("hadoop");
		user.setPassword(password);
		user.setAge(18);
		user.setMobile("15011186301");
		user.setCreateDate(new Date());
		user.setModifyDate(new Date());
		User result = userService.save(user);
		assertEquals(result.getPassword(), password);
	}
	
	@Test
	public void update() {
		User user = userService.findById(1);
		user.setCreateDate(new Date());
		user.setModifyDate(new Date());
		userService.save(user);
	}
}

运行单元测试,鼠标点在单元测试类中的方法上,右键 Run As -> JUnit,控制台打印信息,没有报错的话,JUnit面板会显示绿条。

15:37:18.003 [main] DEBUG org.springframework.test.context.junit4.SpringJUnit4ClassRunner - SpringJUnit4ClassRunner constructor called with [class com.xxx.securitydemo.UserServiceTest]
15:37:18.008 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating CacheAwareContextLoaderDelegate from class [org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate]
15:37:18.015 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating BootstrapContext using constructor [public org.springframework.test.context.support.DefaultBootstrapContext(java.lang.Class,org.springframework.test.context.CacheAwareContextLoaderDelegate)]
15:37:18.031 [main] DEBUG org.springframework.test.context.BootstrapUtils - Instantiating TestContextBootstrapper for test class [com.xxx.securitydemo.UserServiceTest] from class [org.springframework.boot.test.context.SpringBootTestContextBootstrapper]
15:37:18.041 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.xxx.securitydemo.UserServiceTest], using SpringBootContextLoader
15:37:18.043 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [com.xxx.securitydemo.UserServiceTest]: class path resource [com/xxx/securitydemo/UserServiceTest-context.xml] does not exist
15:37:18.044 [main] DEBUG org.springframework.test.context.support.AbstractContextLoader - Did not detect default resource location for test class [com.xxx.securitydemo.UserServiceTest]: class path resource [com/xxx/securitydemo/UserServiceTestContext.groovy] does not exist
15:37:18.044 [main] INFO org.springframework.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [com.xxx.securitydemo.UserServiceTest]: no resource found for suffixes {-context.xml, Context.groovy}.
15:37:18.044 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [com.xxx.securitydemo.UserServiceTest]: UserServiceTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
15:37:18.075 [main] DEBUG org.springframework.test.context.support.ActiveProfilesUtils - Could not find an 'annotation declaring class' for annotation type [org.springframework.test.context.ActiveProfiles] and class [com.xxx.securitydemo.UserServiceTest]
15:37:18.081 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding PropertySource 'systemProperties' with lowest search precedence
15:37:18.081 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding PropertySource 'systemEnvironment' with lowest search precedence
15:37:18.082 [main] DEBUG org.springframework.core.env.StandardEnvironment - Initialized StandardEnvironment with PropertySources [MapPropertySource@1773206895 {name='systemProperties', properties={java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=D:\Program Files\Java\jdk1.8.0_212\jre\bin, java.vm.version=25.212-b10, java.vm.vendor=Oracle Corporation, java.vendor.url=http://java.oracle.com/, path.separator=;, java.vm.name=Java HotSpot(TM) 64-Bit Server VM, file.encoding.pkg=sun.io, user.country=CN, user.script=, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=, java.vm.specification.name=Java Virtual Machine Specification, user.dir=D:\workspace\securitydemo, java.runtime.version=1.8.0_212-b10, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=D:\Program Files\Java\jdk1.8.0_212\jre\lib\endorsed, os.arch=amd64, java.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\, line.separator=
, java.vm.specification.vendor=Oracle Corporation, user.variant=, os.name=Windows 10, sun.jnu.encoding=GBK, java.library.path=D:\Program Files\Java\jdk1.8.0_212\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:/Program Files/Java/jdk1.8.0_212/bin/../jre/bin/server;D:/Program Files/Java/jdk1.8.0_212/bin/../jre/bin;D:/Program Files/Java/jdk1.8.0_212/bin/../jre/lib/amd64;C:\Program Files (x86)\NetSarang\Xshell 6\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Program Files\Java\jdk1.8.0_212\bin;D:\Program Files\Java\jdk1.8.0_212\jre\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;D:\feiy\tools\apache-maven-3.3.9\bin;D:\feiy\tools\node-v10.16.3-win-x64;E:\app\mongodb-win32-x86_64\bin;E:\app\mysql-5.7.27-winx64\bin;E:\app\redis-x64;D:\feiy\tools\curl-7.66.0-win64-mingw\bin;D:\feiy\tools\python\;D:\feiy\tools\python\Scripts\;E:\app\consul_windows;D:\feiy\tools\protoc-2.5.0-win32;D:\feiy\tools\dotnet-sdk-2.2.108-win-x64\;D:\MinGW\bin;C:\Users\Administrator\AppData\Local\GitHubDesktop\bin;C:\Users\Administrator\.dotnet\tools;E:\软件\eclipse_64\eclipse;;., java.specification.name=Java Platform API Specification, java.class.version=52.0, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, os.version=10.0, user.home=C:\Users\Administrator, user.timezone=Asia/Shanghai, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=UTF-8, java.specification.version=1.8, java.class.path=D:\Program Files\Java\jdk1.8.0_212\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\rt.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\access-bridge-64.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\cldrdata.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\jfxrt.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\nashorn.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunpkcs11.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\zipfs.jar;D:\workspace\securitydemo\target\test-classes;D:\workspace\securitydemo\target\classes;D:\feiy\.m2\repository\junit\junit\4.12\junit-4.12.jar;D:\feiy\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.0.5.RELEASE\spring-boot-starter-web-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter\2.0.5.RELEASE\spring-boot-starter-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot\2.0.5.RELEASE\spring-boot-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.5.RELEASE\spring-boot-autoconfigure-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.5.RELEASE\spring-boot-starter-logging-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\feiy\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\feiy\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;D:\feiy\.m2\repository\org\apache\logging\log4j\log4j-api\2.10.0\log4j-api-2.10.0.jar;D:\feiy\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;D:\feiy\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\feiy\.m2\repository\org\yaml\snakeyaml\1.19\snakeyaml-1.19.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.0.5.RELEASE\spring-boot-starter-json-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.6\jackson-databind-2.9.6.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.6\jackson-core-2.9.6.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.6\jackson-datatype-jdk8-2.9.6.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.6\jackson-datatype-jsr310-2.9.6.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.6\jackson-module-parameter-names-2.9.6.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.5.RELEASE\spring-boot-starter-tomcat-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.34\tomcat-embed-core-8.5.34.jar;D:\feiy\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.34\tomcat-embed-el-8.5.34.jar;D:\feiy\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.34\tomcat-embed-websocket-8.5.34.jar;D:\feiy\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.12.Final\hibernate-validator-6.0.12.Final.jar;D:\feiy\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\feiy\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;D:\feiy\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;D:\feiy\.m2\repository\org\springframework\spring-web\5.0.9.RELEASE\spring-web-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-beans\5.0.9.RELEASE\spring-beans-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-webmvc\5.0.9.RELEASE\spring-webmvc-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-context\5.0.9.RELEASE\spring-context-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-expression\5.0.9.RELEASE\spring-expression-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.0.5.RELEASE\spring-boot-starter-data-jpa-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.0.5.RELEASE\spring-boot-starter-aop-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\aspectj\aspectjweaver\1.8.13\aspectjweaver-1.8.13.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.0.5.RELEASE\spring-boot-starter-jdbc-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\com\zaxxer\HikariCP\2.7.9\HikariCP-2.7.9.jar;D:\feiy\.m2\repository\org\springframework\spring-jdbc\5.0.9.RELEASE\spring-jdbc-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\javax\transaction\javax.transaction-api\1.2\javax.transaction-api-1.2.jar;D:\feiy\.m2\repository\org\hibernate\hibernate-core\5.2.17.Final\hibernate-core-5.2.17.Final.jar;D:\feiy\.m2\repository\org\hibernate\javax\persistence\hibernate-jpa-2.1-api\1.0.2.Final\hibernate-jpa-2.1-api-1.0.2.Final.jar;D:\feiy\.m2\repository\org\javassist\javassist\3.22.0-GA\javassist-3.22.0-GA.jar;D:\feiy\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;D:\feiy\.m2\repository\org\jboss\jandex\2.0.3.Final\jandex-2.0.3.Final.jar;D:\feiy\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;D:\feiy\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.1.Final\hibernate-commons-annotations-5.0.1.Final.jar;D:\feiy\.m2\repository\org\springframework\data\spring-data-jpa\2.0.10.RELEASE\spring-data-jpa-2.0.10.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\data\spring-data-commons\2.0.10.RELEASE\spring-data-commons-2.0.10.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-orm\5.0.9.RELEASE\spring-orm-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-tx\5.0.9.RELEASE\spring-tx-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;D:\feiy\.m2\repository\org\springframework\spring-aspects\5.0.9.RELEASE\spring-aspects-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.0.5.RELEASE\spring-boot-starter-test-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-test\2.0.5.RELEASE\spring-boot-test-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.0.5.RELEASE\spring-boot-test-autoconfigure-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar;D:\feiy\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;D:\feiy\.m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;D:\feiy\.m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;D:\feiy\.m2\repository\org\assertj\assertj-core\3.9.1\assertj-core-3.9.1.jar;D:\feiy\.m2\repository\org\mockito\mockito-core\2.15.0\mockito-core-2.15.0.jar;D:\feiy\.m2\repository\net\bytebuddy\byte-buddy\1.7.11\byte-buddy-1.7.11.jar;D:\feiy\.m2\repository\net\bytebuddy\byte-buddy-agent\1.7.11\byte-buddy-agent-1.7.11.jar;D:\feiy\.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;D:\feiy\.m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar;D:\feiy\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;D:\feiy\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;D:\feiy\.m2\repository\org\springframework\spring-core\5.0.9.RELEASE\spring-core-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-jcl\5.0.9.RELEASE\spring-jcl-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-test\5.0.9.RELEASE\spring-test-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\xmlunit\xmlunit-core\2.5.1\xmlunit-core-2.5.1.jar;D:\feiy\.m2\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-security\2.0.5.RELEASE\spring-boot-starter-security-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-aop\5.0.9.RELEASE\spring-aop-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\security\spring-security-config\5.0.8.RELEASE\spring-security-config-5.0.8.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\security\spring-security-core\5.0.8.RELEASE\spring-security-core-5.0.8.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\security\spring-security-web\5.0.8.RELEASE\spring-security-web-5.0.8.RELEASE.jar;E:\软件\eclipse_64\eclipse\configuration\org.eclipse.osgi\413\0\.cp;E:\软件\eclipse_64\eclipse\configuration\org.eclipse.osgi\412\0\.cp, user.name=Administrator, java.vm.specification.version=1.8, sun.java.command=org.eclipse.jdt.internal.junit.runner.RemoteTestRunner -version 3 -port 62765 -testLoaderClass org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader -loaderpluginname org.eclipse.jdt.junit4.runtime -test com.xxx.securitydemo.UserServiceTest:update, java.home=D:\Program Files\Java\jdk1.8.0_212\jre, sun.arch.data.model=64, user.language=zh, java.specification.vendor=Oracle Corporation, awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, java.version=1.8.0_212, java.ext.dirs=D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext;C:\Windows\Sun\Java\lib\ext, sun.boot.class.path=D:\Program Files\Java\jdk1.8.0_212\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\rt.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\sunrsasign.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_212\jre\classes, java.vendor=Oracle Corporation, file.separator=\, java.vendor.url.bug=http://bugreport.sun.com/bugreport/, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, sun.desktop=windows, sun.cpu.isalist=amd64}}, SystemEnvironmentPropertySource@1970881185 {name='systemEnvironment', properties={USERDOMAIN_ROAMINGPROFILE=SC-201906201655, LOCALAPPDATA=C:\Users\Administrator\AppData\Local, PROCESSOR_LEVEL=6, USERDOMAIN=SC-201906201655, FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer, LOGONSERVER=\\SC-201906201655, JAVA_HOME=D:\Program Files\Java\jdk1.8.0_212, SESSIONNAME=Console, ALLUSERSPROFILE=C:\ProgramData, PROCESSOR_ARCHITECTURE=AMD64, PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\, SystemDrive=C:, APPDATA=C:\Users\Administrator\AppData\Roaming, USERNAME=Administrator, ProgramFiles(x86)=C:\Program Files (x86), CommonProgramFiles=C:\Program Files\Common Files, Path=D:/Program Files/Java/jdk1.8.0_212/bin/../jre/bin/server;D:/Program Files/Java/jdk1.8.0_212/bin/../jre/bin;D:/Program Files/Java/jdk1.8.0_212/bin/../jre/lib/amd64;C:\Program Files (x86)\NetSarang\Xshell 6\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Program Files\Java\jdk1.8.0_212\bin;D:\Program Files\Java\jdk1.8.0_212\jre\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;D:\feiy\tools\apache-maven-3.3.9\bin;D:\feiy\tools\node-v10.16.3-win-x64;E:\app\mongodb-win32-x86_64\bin;E:\app\mysql-5.7.27-winx64\bin;E:\app\redis-x64;D:\feiy\tools\curl-7.66.0-win64-mingw\bin;D:\feiy\tools\python\;D:\feiy\tools\python\Scripts\;E:\app\consul_windows;D:\feiy\tools\protoc-2.5.0-win32;D:\feiy\tools\dotnet-sdk-2.2.108-win-x64\;D:\MinGW\bin;C:\Users\Administrator\AppData\Local\GitHubDesktop\bin;C:\Users\Administrator\.dotnet\tools;E:\软件\eclipse_64\eclipse;, FPS_BROWSER_USER_PROFILE_STRING=Default, PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC, OS=Windows_NT, COMPUTERNAME=SC-201906201655, PROCESSOR_REVISION=9e09, CommonProgramW6432=C:\Program Files\Common Files, ComSpec=C:\Windows\system32\cmd.exe, ProgramData=C:\ProgramData, ProgramW6432=C:\Program Files, DOTNET_ROOT=D:\feiy\tools\dotnet-sdk-2.2.108-win-x64, =D:=D:\, HOMEPATH=\Users\Administrator, SystemRoot=C:\Windows, TEMP=C:\Users\ADMINI~1\AppData\Local\Temp, HOMEDRIVE=C:, PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 9, GenuineIntel, USERPROFILE=C:\Users\Administrator, TMP=C:\Users\ADMINI~1\AppData\Local\Temp, CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files, ProgramFiles=C:\Program Files, PUBLIC=C:\Users\Public, NUMBER_OF_PROCESSORS=4, windir=C:\Windows, =::=::\}}]
15:37:18.092 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Resolved classpath location [com/xxx/securitydemo/] to resources [URL [file:/D:/workspace/securitydemo/target/test-classes/com/xxx/securitydemo/], URL [file:/D:/workspace/securitydemo/target/classes/com/xxx/securitydemo/]]
15:37:18.093 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Looking for matching resources in directory tree [D:\workspace\securitydemo\target\test-classes\com\xxx\securitydemo]
15:37:18.093 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Searching directory [D:\workspace\securitydemo\target\test-classes\com\xxx\securitydemo] for files matching pattern [D:/workspace/securitydemo/target/test-classes/com/xxx/securitydemo/*.class]
15:37:18.095 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Looking for matching resources in directory tree [D:\workspace\securitydemo\target\classes\com\xxx\securitydemo]
15:37:18.096 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Searching directory [D:\workspace\securitydemo\target\classes\com\xxx\securitydemo] for files matching pattern [D:/workspace/securitydemo/target/classes/com/xxx/securitydemo/*.class]
15:37:18.098 [main] DEBUG org.springframework.core.io.support.PathMatchingResourcePatternResolver - Resolved location pattern [classpath*:com/xxx/securitydemo/*.class] to resources [file [D:\workspace\securitydemo\target\test-classes\com\xxx\securitydemo\UserServiceTest.class], file [D:\workspace\securitydemo\target\classes\com\xxx\securitydemo\App.class]]
15:37:18.138 [main] DEBUG org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider - Identified candidate component class: file [D:\workspace\securitydemo\target\classes\com\xxx\securitydemo\App.class]
15:37:18.139 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration com.xxx.securitydemo.App for test class com.xxx.securitydemo.UserServiceTest
15:37:18.226 [main] DEBUG org.springframework.boot.test.context.SpringBootTestContextBootstrapper - @TestExecutionListeners is not present for class [com.xxx.securitydemo.UserServiceTest]: using defaults.
15:37:18.227 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener]
15:37:18.241 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@59309333, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@5876a9af, org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@7ec7ffd3, org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@5b239d7d, org.springframework.test.context.support.DirtiesContextTestExecutionListener@6572421, org.springframework.test.context.transaction.TransactionalTestExecutionListener@6b81ce95, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener@2a798d51, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@6d763516, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@52bf72b5, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@37afeb11, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener@515aebb0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@dd8ba08]
15:37:18.242 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.xxx.securitydemo.UserServiceTest]
15:37:18.243 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.xxx.securitydemo.UserServiceTest]
15:37:18.244 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.xxx.securitydemo.UserServiceTest]
15:37:18.244 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.xxx.securitydemo.UserServiceTest]
15:37:18.252 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.xxx.securitydemo.UserServiceTest]
15:37:18.252 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.xxx.securitydemo.UserServiceTest]
15:37:18.253 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.xxx.securitydemo.UserServiceTest]
15:37:18.253 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.xxx.securitydemo.UserServiceTest]
15:37:18.254 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.xxx.securitydemo.UserServiceTest]
15:37:18.254 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.xxx.securitydemo.UserServiceTest]
15:37:18.257 [main] DEBUG org.springframework.test.context.support.AbstractDirtiesContextTestExecutionListener - Before test class: context [DefaultTestContext@72967906 testClass = UserServiceTest, testInstance = [null], testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@5b8dfcc1 testClass = UserServiceTest, locations = '{}', classes = '{class com.xxx.securitydemo.App}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@2d8f65a4, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@59e5ddf, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@69a3d1d, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@3e57cd70], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]], class annotated with @DirtiesContext [false] with mode [null].
15:37:18.258 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved @ProfileValueSourceConfiguration [null] for test class [com.xxx.securitydemo.UserServiceTest]
15:37:18.258 [main] DEBUG org.springframework.test.annotation.ProfileValueUtils - Retrieved ProfileValueSource type [class org.springframework.test.annotation.SystemProfileValueSource] for class [com.xxx.securitydemo.UserServiceTest]
15:37:18.272 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding PropertySource 'systemProperties' with lowest search precedence
15:37:18.272 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding PropertySource 'systemEnvironment' with lowest search precedence
15:37:18.272 [main] DEBUG org.springframework.core.env.StandardEnvironment - Initialized StandardEnvironment with PropertySources [MapPropertySource@1976870338 {name='systemProperties', properties={java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=D:\Program Files\Java\jdk1.8.0_212\jre\bin, java.vm.version=25.212-b10, java.vm.vendor=Oracle Corporation, java.vendor.url=http://java.oracle.com/, path.separator=;, java.vm.name=Java HotSpot(TM) 64-Bit Server VM, file.encoding.pkg=sun.io, user.country=CN, user.script=, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=, java.vm.specification.name=Java Virtual Machine Specification, user.dir=D:\workspace\securitydemo, java.runtime.version=1.8.0_212-b10, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=D:\Program Files\Java\jdk1.8.0_212\jre\lib\endorsed, os.arch=amd64, java.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\, line.separator=
, java.vm.specification.vendor=Oracle Corporation, user.variant=, os.name=Windows 10, sun.jnu.encoding=GBK, java.library.path=D:\Program Files\Java\jdk1.8.0_212\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:/Program Files/Java/jdk1.8.0_212/bin/../jre/bin/server;D:/Program Files/Java/jdk1.8.0_212/bin/../jre/bin;D:/Program Files/Java/jdk1.8.0_212/bin/../jre/lib/amd64;C:\Program Files (x86)\NetSarang\Xshell 6\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Program Files\Java\jdk1.8.0_212\bin;D:\Program Files\Java\jdk1.8.0_212\jre\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;D:\feiy\tools\apache-maven-3.3.9\bin;D:\feiy\tools\node-v10.16.3-win-x64;E:\app\mongodb-win32-x86_64\bin;E:\app\mysql-5.7.27-winx64\bin;E:\app\redis-x64;D:\feiy\tools\curl-7.66.0-win64-mingw\bin;D:\feiy\tools\python\;D:\feiy\tools\python\Scripts\;E:\app\consul_windows;D:\feiy\tools\protoc-2.5.0-win32;D:\feiy\tools\dotnet-sdk-2.2.108-win-x64\;D:\MinGW\bin;C:\Users\Administrator\AppData\Local\GitHubDesktop\bin;C:\Users\Administrator\.dotnet\tools;E:\软件\eclipse_64\eclipse;;., java.specification.name=Java Platform API Specification, java.class.version=52.0, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, os.version=10.0, user.home=C:\Users\Administrator, user.timezone=Asia/Shanghai, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=UTF-8, java.specification.version=1.8, java.class.path=D:\Program Files\Java\jdk1.8.0_212\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\rt.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\access-bridge-64.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\cldrdata.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\jfxrt.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\nashorn.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\sunpkcs11.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext\zipfs.jar;D:\workspace\securitydemo\target\test-classes;D:\workspace\securitydemo\target\classes;D:\feiy\.m2\repository\junit\junit\4.12\junit-4.12.jar;D:\feiy\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.0.5.RELEASE\spring-boot-starter-web-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter\2.0.5.RELEASE\spring-boot-starter-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot\2.0.5.RELEASE\spring-boot-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.0.5.RELEASE\spring-boot-autoconfigure-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.0.5.RELEASE\spring-boot-starter-logging-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\feiy\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\feiy\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.10.0\log4j-to-slf4j-2.10.0.jar;D:\feiy\.m2\repository\org\apache\logging\log4j\log4j-api\2.10.0\log4j-api-2.10.0.jar;D:\feiy\.m2\repository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;D:\feiy\.m2\repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\feiy\.m2\repository\org\yaml\snakeyaml\1.19\snakeyaml-1.19.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.0.5.RELEASE\spring-boot-starter-json-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.9.6\jackson-databind-2.9.6.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.9.6\jackson-core-2.9.6.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.6\jackson-datatype-jdk8-2.9.6.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.6\jackson-datatype-jsr310-2.9.6.jar;D:\feiy\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.6\jackson-module-parameter-names-2.9.6.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.0.5.RELEASE\spring-boot-starter-tomcat-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\8.5.34\tomcat-embed-core-8.5.34.jar;D:\feiy\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\8.5.34\tomcat-embed-el-8.5.34.jar;D:\feiy\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\8.5.34\tomcat-embed-websocket-8.5.34.jar;D:\feiy\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.12.Final\hibernate-validator-6.0.12.Final.jar;D:\feiy\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\feiy\.m2\repository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;D:\feiy\.m2\repository\com\fasterxml\classmate\1.3.4\classmate-1.3.4.jar;D:\feiy\.m2\repository\org\springframework\spring-web\5.0.9.RELEASE\spring-web-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-beans\5.0.9.RELEASE\spring-beans-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-webmvc\5.0.9.RELEASE\spring-webmvc-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-context\5.0.9.RELEASE\spring-context-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-expression\5.0.9.RELEASE\spring-expression-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-data-jpa\2.0.5.RELEASE\spring-boot-starter-data-jpa-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-aop\2.0.5.RELEASE\spring-boot-starter-aop-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\aspectj\aspectjweaver\1.8.13\aspectjweaver-1.8.13.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.0.5.RELEASE\spring-boot-starter-jdbc-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\com\zaxxer\HikariCP\2.7.9\HikariCP-2.7.9.jar;D:\feiy\.m2\repository\org\springframework\spring-jdbc\5.0.9.RELEASE\spring-jdbc-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\javax\transaction\javax.transaction-api\1.2\javax.transaction-api-1.2.jar;D:\feiy\.m2\repository\org\hibernate\hibernate-core\5.2.17.Final\hibernate-core-5.2.17.Final.jar;D:\feiy\.m2\repository\org\hibernate\javax\persistence\hibernate-jpa-2.1-api\1.0.2.Final\hibernate-jpa-2.1-api-1.0.2.Final.jar;D:\feiy\.m2\repository\org\javassist\javassist\3.22.0-GA\javassist-3.22.0-GA.jar;D:\feiy\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;D:\feiy\.m2\repository\org\jboss\jandex\2.0.3.Final\jandex-2.0.3.Final.jar;D:\feiy\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;D:\feiy\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.1.Final\hibernate-commons-annotations-5.0.1.Final.jar;D:\feiy\.m2\repository\org\springframework\data\spring-data-jpa\2.0.10.RELEASE\spring-data-jpa-2.0.10.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\data\spring-data-commons\2.0.10.RELEASE\spring-data-commons-2.0.10.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-orm\5.0.9.RELEASE\spring-orm-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-tx\5.0.9.RELEASE\spring-tx-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;D:\feiy\.m2\repository\org\springframework\spring-aspects\5.0.9.RELEASE\spring-aspects-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.0.5.RELEASE\spring-boot-starter-test-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-test\2.0.5.RELEASE\spring-boot-test-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.0.5.RELEASE\spring-boot-test-autoconfigure-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar;D:\feiy\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;D:\feiy\.m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;D:\feiy\.m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;D:\feiy\.m2\repository\org\assertj\assertj-core\3.9.1\assertj-core-3.9.1.jar;D:\feiy\.m2\repository\org\mockito\mockito-core\2.15.0\mockito-core-2.15.0.jar;D:\feiy\.m2\repository\net\bytebuddy\byte-buddy\1.7.11\byte-buddy-1.7.11.jar;D:\feiy\.m2\repository\net\bytebuddy\byte-buddy-agent\1.7.11\byte-buddy-agent-1.7.11.jar;D:\feiy\.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;D:\feiy\.m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar;D:\feiy\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;D:\feiy\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;D:\feiy\.m2\repository\org\springframework\spring-core\5.0.9.RELEASE\spring-core-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-jcl\5.0.9.RELEASE\spring-jcl-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-test\5.0.9.RELEASE\spring-test-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\xmlunit\xmlunit-core\2.5.1\xmlunit-core-2.5.1.jar;D:\feiy\.m2\repository\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar;D:\feiy\.m2\repository\org\springframework\boot\spring-boot-starter-security\2.0.5.RELEASE\spring-boot-starter-security-2.0.5.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\spring-aop\5.0.9.RELEASE\spring-aop-5.0.9.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\security\spring-security-config\5.0.8.RELEASE\spring-security-config-5.0.8.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\security\spring-security-core\5.0.8.RELEASE\spring-security-core-5.0.8.RELEASE.jar;D:\feiy\.m2\repository\org\springframework\security\spring-security-web\5.0.8.RELEASE\spring-security-web-5.0.8.RELEASE.jar;E:\软件\eclipse_64\eclipse\configuration\org.eclipse.osgi\413\0\.cp;E:\软件\eclipse_64\eclipse\configuration\org.eclipse.osgi\412\0\.cp, user.name=Administrator, java.vm.specification.version=1.8, sun.java.command=org.eclipse.jdt.internal.junit.runner.RemoteTestRunner -version 3 -port 62765 -testLoaderClass org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader -loaderpluginname org.eclipse.jdt.junit4.runtime -test com.xxx.securitydemo.UserServiceTest:update, java.home=D:\Program Files\Java\jdk1.8.0_212\jre, sun.arch.data.model=64, user.language=zh, java.specification.vendor=Oracle Corporation, awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, java.version=1.8.0_212, java.ext.dirs=D:\Program Files\Java\jdk1.8.0_212\jre\lib\ext;C:\Windows\Sun\Java\lib\ext, sun.boot.class.path=D:\Program Files\Java\jdk1.8.0_212\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\rt.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\sunrsasign.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_212\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_212\jre\classes, java.vendor=Oracle Corporation, file.separator=\, java.vendor.url.bug=http://bugreport.sun.com/bugreport/, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, sun.desktop=windows, sun.cpu.isalist=amd64}}, SystemEnvironmentPropertySource@1434234664 {name='systemEnvironment', properties={USERDOMAIN_ROAMINGPROFILE=SC-201906201655, LOCALAPPDATA=C:\Users\Administrator\AppData\Local, PROCESSOR_LEVEL=6, USERDOMAIN=SC-201906201655, FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer, LOGONSERVER=\\SC-201906201655, JAVA_HOME=D:\Program Files\Java\jdk1.8.0_212, SESSIONNAME=Console, ALLUSERSPROFILE=C:\ProgramData, PROCESSOR_ARCHITECTURE=AMD64, PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\, SystemDrive=C:, APPDATA=C:\Users\Administrator\AppData\Roaming, USERNAME=Administrator, ProgramFiles(x86)=C:\Program Files (x86), CommonProgramFiles=C:\Program Files\Common Files, Path=D:/Program Files/Java/jdk1.8.0_212/bin/../jre/bin/server;D:/Program Files/Java/jdk1.8.0_212/bin/../jre/bin;D:/Program Files/Java/jdk1.8.0_212/bin/../jre/lib/amd64;C:\Program Files (x86)\NetSarang\Xshell 6\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Program Files\Java\jdk1.8.0_212\bin;D:\Program Files\Java\jdk1.8.0_212\jre\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\Program Files\TortoiseGit\bin;D:\feiy\tools\apache-maven-3.3.9\bin;D:\feiy\tools\node-v10.16.3-win-x64;E:\app\mongodb-win32-x86_64\bin;E:\app\mysql-5.7.27-winx64\bin;E:\app\redis-x64;D:\feiy\tools\curl-7.66.0-win64-mingw\bin;D:\feiy\tools\python\;D:\feiy\tools\python\Scripts\;E:\app\consul_windows;D:\feiy\tools\protoc-2.5.0-win32;D:\feiy\tools\dotnet-sdk-2.2.108-win-x64\;D:\MinGW\bin;C:\Users\Administrator\AppData\Local\GitHubDesktop\bin;C:\Users\Administrator\.dotnet\tools;E:\软件\eclipse_64\eclipse;, FPS_BROWSER_USER_PROFILE_STRING=Default, PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC, OS=Windows_NT, COMPUTERNAME=SC-201906201655, PROCESSOR_REVISION=9e09, CommonProgramW6432=C:\Program Files\Common Files, ComSpec=C:\Windows\system32\cmd.exe, ProgramData=C:\ProgramData, ProgramW6432=C:\Program Files, DOTNET_ROOT=D:\feiy\tools\dotnet-sdk-2.2.108-win-x64, =D:=D:\, HOMEPATH=\Users\Administrator, SystemRoot=C:\Windows, TEMP=C:\Users\ADMINI~1\AppData\Local\Temp, HOMEDRIVE=C:, PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 158 Stepping 9, GenuineIntel, USERPROFILE=C:\Users\Administrator, TMP=C:\Users\ADMINI~1\AppData\Local\Temp, CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files, ProgramFiles=C:\Program Files, PUBLIC=C:\Users\Public, NUMBER_OF_PROCESSORS=4, windir=C:\Windows, =::=::\}}]
15:37:18.274 [main] DEBUG org.springframework.test.context.support.TestPropertySourceUtils - Adding inlined properties to environment: {spring.jmx.enabled=false, org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true, server.port=-1}
15:37:18.274 [main] DEBUG org.springframework.core.env.StandardEnvironment - Adding PropertySource 'Inlined Test Properties' with highest search precedence

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.5.RELEASE)

2019-10-25 15:37:18.596  INFO 5564 --- [           main] com.xxx.securitydemo.UserServiceTest     : Starting UserServiceTest on SC-201906201655 with PID 5564 (started by Administrator in D:\workspace\securitydemo)
2019-10-25 15:37:18.597  INFO 5564 --- [           main] com.xxx.securitydemo.UserServiceTest     : The following profiles are active: dev
2019-10-25 15:37:18.628  INFO 5564 --- [           main] o.s.w.c.s.GenericWebApplicationContext   : Refreshing org.springframework.web.context.support.GenericWebApplicationContext@7139992f: startup date [Fri Oct 25 15:37:18 CST 2019]; root of context hierarchy
2019-10-25 15:37:19.737  INFO 5564 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$d2593a5] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-10-25 15:37:19.902  INFO 5564 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2019-10-25 15:37:20.089  INFO 5564 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2019-10-25 15:37:20.122  INFO 5564 --- [           main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2019-10-25 15:37:20.196  INFO 5564 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
	name: default
	...]
2019-10-25 15:37:20.270  INFO 5564 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {5.2.17.Final}
2019-10-25 15:37:20.272  INFO 5564 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2019-10-25 15:37:20.304  INFO 5564 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
2019-10-25 15:37:20.401  INFO 5564 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2019-10-25 15:37:20.826  INFO 5564 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-10-25 15:37:21.270  INFO 5564 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-10-25 15:37:21.512  INFO 5564 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.web.context.support.GenericWebApplicationContext@7139992f: startup date [Fri Oct 25 15:37:18 CST 2019]; root of context hierarchy
2019-10-25 15:37:21.548  WARN 5564 --- [           main] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-10-25 15:37:21.579  INFO 5564 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2019-10-25 15:37:21.580  INFO 5564 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2019-10-25 15:37:21.609  INFO 5564 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-10-25 15:37:21.610  INFO 5564 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2019-10-25 15:37:21.894  INFO 5564 --- [           main] .s.s.UserDetailsServiceAutoConfiguration : 

Using generated security password: 6b0567be-ca60-4ca2-a5e7-de9c1ce4befe

2019-10-25 15:37:22.047  INFO 5564 --- [           main] o.s.s.web.DefaultSecurityFilterChain     : Creating filter chain: org.springframework.security.web.util.matcher.AnyRequestMatcher@1, [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@150fc7a7, org.springframework.security.web.context.SecurityContextPersistenceFilter@1fe8f5e8, org.springframework.security.web.header.HeaderWriterFilter@7b297740, org.springframework.security.web.csrf.CsrfFilter@25a5c8e, org.springframework.security.web.authentication.logout.LogoutFilter@7761e342, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@aa1bb14, org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter@47058864, org.springframework.security.web.authentication.www.BasicAuthenticationFilter@53982523, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@6e3dd5ce, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@ef86c72, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@55d8c2c4, org.springframework.security.web.session.SessionManagementFilter@57ce2898, org.springframework.security.web.access.ExceptionTranslationFilter@1c7f9861, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@4703c998]
2019-10-25 15:37:22.145  INFO 5564 --- [           main] com.xxx.securitydemo.UserServiceTest     : Started UserServiceTest in 3.864 seconds (JVM running for 4.567)
2019-10-25 15:37:22.301  INFO 5564 --- [       Thread-2] o.s.w.c.s.GenericWebApplicationContext   : Closing org.springframework.web.context.support.GenericWebApplicationContext@7139992f: startup date [Fri Oct 25 15:37:18 CST 2019]; root of context hierarchy
2019-10-25 15:37:22.305  INFO 5564 --- [       Thread-2] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2019-10-25 15:37:22.305  INFO 5564 --- [       Thread-2] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2019-10-25 15:37:22.310  INFO 5564 --- [       Thread-2] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.

    从打印信息看,springboot的单元测试,实际上是启动了项目启动类,加载了系统配置,以及做了一些对象实例化和依赖注入操作,最后执行了单元测试方法。springboot与spring的单元测试不太一样,spring的单元测试无需也无法配置一个启动类,但是需要指定spring的配置文件spring.xml或者applicationContext.xml,如果有多个配置文件,需要都加入到@ContextConfiguration配置当中去。

    spring的单元测试是需要在类上添加注解@RunWith(SpringJUnit4ClassRunner.class),在springboot的单元测试里,同样需要这个注解,但是springboot提供了另外一种方式:@RunWith(SpringRunner.class),从单元测试打印信息来看,实际还是调用了SpringJUnit4ClassRunner.class。

    springboot单元测试总体来说,配置是简单了,无需关心配置文件,因为会使用默认的配置文件,但是实际上运行更复杂了,它做一次单元测试,相当于启动了一次整个项目,感觉比以前更耗时了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot项目单元测试 的相关文章

随机推荐

  • MapReduce编程开发之求平均成绩

    MapReduce计算平均成绩是一个常见的算法 xff0c 本省思路很简单 xff0c 就是将每个人的成绩汇总 xff0c 然后做除法 xff0c 在map阶段 xff0c 是直接将姓名做key 分数作为value输出 在shuffle阶段
  • MapReduce编程开发之数据排序

    MapReduce的数据排序 xff0c 其实没有很复杂的实现 xff0c 默认在shuffle阶段 xff0c MapReduce就帮我们将数据排好序了 xff0c 我们在Map和Reduce阶段 xff0c 无需做额外的操作 MapRe
  • MapReduce编程开发之倒排索引

    倒排索引是词频统计的一个变种 xff0c 其实也是做一个词频统计 xff0c 不过这个词频统计需要加上文件的名称 倒排索引被广泛用来做全文检索 倒排索引最终的结果是一个单词在文件中出现的次数的集合 xff0c 以下面的数据为例 xff1a
  • ROS2学习笔记(五)-- ROS2命令行操作常用指令总结(一)

    简介 xff1a 在前面的章节中 xff0c 我们先简单学习了ROS2的话题发布和订阅 xff0c 两种操作都是通过python代码实现的 xff0c 而在实际应用过程中 xff0c 我们会经常用到命令行操作来辅助调试 xff0c 更进一步
  • 实例演示ElasticSearch索引查询term,match,match_phase,query_string之间的区别

    通常在面试elasticsearch中 xff0c 面试官会问一个关于查询的问题 xff0c 就是term查询和match查询有什么区别 xff1f 如果你对这两个查询不清楚 xff0c 面试官会认为你没有用过elasticsearch x
  • Elasticsearch使用update_by_query

    elasticsearch中有一个方法是批量修改 xff0c 就是先查询出需要修改的索引记录 xff0c 然后批量修改 这个本来没什么 xff0c 但是使用过的都知道 xff0c 用java来调用这个方法很别扭 一般来说 xff0c 我们使
  • C++中实现字符串分隔split方法

    C 43 43 中 xff0c 除了没有直接的求数组长度的方法外 xff0c 也没有直接对字符串分隔的方法 xff0c 需要我们自己来实现 xff0c 下面结合字符串分隔的问题 xff0c 做一个面试题 xff0c 面试题是这样的 xff0
  • c++编程实现简单mapreduce程序

    hadoop提供了java版本的mapreduce编程API xff0c 我们需要自定义编写mapper和reducer xff0c 分别继承Mapper和Reducer xff0c 然后重写map和reduce方法 同时需要在main方法
  • windows下安装MongoDB压缩版

    MongoDB在windows上一般提供msi的安装方式 xff0c 这种安装方式相对简单 xff0c 界面安装 xff0c 这里介绍解压缩版本的安装 xff0c 我们需要下载的是zip包 xff0c 然后解压 xff0c 这里下载之后 x
  • python3安装以及安装pip之后出现的问题

    python3在windows10上的安装 xff0c 为了省事 xff0c 直接下载的是python 3 7 4 embed adm64 zip免安装版本 xff0c 下载解压 xff0c 然后将python目录加入环境变量的path中
  • eclipse安装pydev插件开发python程序

    做Java开发的 xff0c 想学习python xff0c 可以不用安装别的pycharm IDE xff0c 我们直接通过在eclipse中安装一个python插件pydev即可 xff0c 前提是你的机器上已经安装了python xf
  • docker私有镜像服务搭建

    docker容器技术已经在部署服务上使用的非常普遍 xff0c 主要是它的隔离性以及快速启动的特性 xff0c 一般启动一个容器 xff0c 如果镜像不存在会先去dockerhub仓库下载 xff0c 然后存储在本地 xff0c 后续可以继
  • vs2017开发第一个desktop应用程序

    desktop应用程序也叫窗口程序 xff0c 我们平时在电脑上安装的APP xff0c 都是桌面程序 xff0c 比如QQ xff0c 各种播放器 xff0c 包括浏览器 桌面程序最主要的特点 xff0c 就是点击运行之后 xff0c 会
  • 量子编程入门第一篇环境搭建dotnet-sdk+Microsoft.Quantum.IQSharp+python3.6+qsharp

    量子编程已经提上日程 xff0c 微软提供了quantum开发工具包 Microsoft Quantum Development Kit简称QDK xff0c 在visual studio 2019环境下 xff0c 可以安装quantum
  • ROS2学习笔记(十)-- ROS2 launch启动文件

    简介 xff1a 接触过ROS1的同学对launch肯定不陌生 xff0c 在ROS1中 xff0c 我们常用launch实现node和master同时启动 多节点同时启动配置等功能 xff0c ROS2中的launch也是用于多节点启动
  • 记录一次解决TypeError: 'NoneType' object is not callable的办法

    如题所示 xff0c 这是python运行时报错 xff0c 关键信息就是 xff1a TypeError 39 NoneType 39 object is not callable xff0c 错误栈信息如下 xff1a 有的文章提示 x
  • windows下VC++6.0编写c++程序连接mysql示例

    windows下通过c 43 43 编码连接mysql数据库 xff0c 需要做一些设置 xff0c 因为我们需要连接mysql并执行相关操作 xff0c 需要使用mysql提供的api xff0c 这api在mysql h头文件中定义了
  • windows修改cmd命令行字体

    默认情况下 xff0c windows命令行字体只有两种 xff0c 点阵字体和新宋体 如果你想使用系统自带的其他字体 xff0c 需要更改注册表 这里介绍如何修改 windows系统字体在目录C Windows Fonts 下 xff0c
  • centos7安装与配置DNS服务器

    centos7上安装DNS服务器可以实现域名与IP的双向解析 xff0c 即通过域名可以找到主机IP xff0c 也可以通过IP找到域名 在postfix搭建邮件服务器中 xff0c 需要用到DNS正向解析与反向解析 xff0c 因此DNS
  • springboot项目单元测试

    springboot项目和普通的spring项目一样也可以做单元测试 xff0c 一般是测试service层的方法 xff0c 在进行项目构建的时候 xff0c 需要在springboot默认依赖的基础上 xff0c 再加上spring b