一、maven 命令行运行java应用程序
clean compile exec:java -Dexec.mainClass="com.wcy.App"
从包路径开始一直写到需要运行的类名,不需要加.class
二、hamcrest作用:
增强junit的测试能力,用一些相对通俗的语言来进行测试,如:
<!-- maven添加依赖,如果是手工导入,需将其jar包放置在junit的jar之前-->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
</dependency>
//静态导入文件
import static org.hamcrest.Matchers.*;
//判断50是否大于六十,并且小于20
Assert.assertThat(50, allOf(greaterThan(60), lessThan(20)));
三、testSuite作用
将多个类组成一个测试组件,运行testSuite,将执行多个test文件
package com.wcy;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
//表示这个类是一个suite类
@RunWith(Suite.class)
//说明这个类中包含的测试组件
@SuiteClasses({TestA.class,
TestB.class,
TestHello.class})
public class TestSuite {
}
四、测试原则:
每一个测试类均可以独立运行,测试类中每一个测试方法之间没有依赖关系
测试类的包与需要测试的类的包名一致
五、学习新知识方法
如junit,搜索junit in action 英文版的,中文的则为 junit实战
六、cobertura
测试你测试代码的覆盖率,还可显示各个类的哪个分支没有被测试(摘自http://blog.csdn.net/kongxx/article/details/7757571)
首先修改工程的pom.xml文件,添加cobertura-maven-plugin插件,如下:
<project>
...
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
</plugin>
</plugins>
</reporting>
...
</project>
运行“mvn cobertura:help”, 如果不能运行,请添加以下仓库
<project>
...
<pluginRepositories>
<pluginRepository>
<id>Codehaus repository</id>
<url>http://repository.codehaus.org/</url>
</pluginRepository>
</pluginRepositories>
...
</project>
我是直接都添加了
下面是cobertura插件的命令
mvn cobertura:help 查看cobertura插件的帮助
mvn cobertura:clean 清空cobertura插件运行结果
mvn cobertura:check 运行cobertura的检查任务
mvn cobertura:cobertura 运行cobertura的检查任务并生成报表,报表生成在target/site/cobertura目录下的index.html文件中
cobertura:dump-datafile Cobertura Datafile Dump Mojo
mvn cobertura:instrument Instrument the compiled classes
七、安装完mysql后,为root 创建密码(win 7 cmd可用)
mysqladmin -u root flush-privileges password “newpwd”
修改root密码
mysqladmin -u用户名 -p password 新密码
然后输入旧密码即可
应该还有别的方法,不需要在命令行中输入新密码,这样太不安全了,暂时想不起来了。。。
八、mysql显示表中的列信息
desc 表名
九、mysql使用外部文件创建表
通过source init.sql 文件绝对路径(cmd 使用/分隔)创建表
init.sql 文件内容
create table if not exists t_user(
id int(10) primary key auto_increment,
username varchar(200),
password varchar(200),
nickname varchar(200)
)auto_increment=1
十、使eclipse使用本机上安装好的Maven,使软件的版本在自己可以控制的范围内
eclipse:Window–>Preference–>Maven–>Installations–>Add指定本机上安装好的Maven文件夹
十一、stub思想:
例如测试service时需要调用dao操作数据库,可以使用map或者其他东西模拟dao对数据库的操作,从而达到保护数据和测试代码的目的。
十二、dbunit
1、导入文件
<!-- 使用dbunit -->
<dependency>
<groupId>org.dbunit</groupId>
<artifactId>dbunit</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
2、测试数据文件t_user.xml,内含两种编写方式
<?xml version="1.0" encoding="UTF-8"?>
<dataset>
<!-- <t_user>
<id>1</id>
<username>wcy</username>
<password>wcy</password>
<nickname>wcy</nickname>
</t_user> -->
<t_user id="1" username="wcy" password="wcy" nickname="wcy"></t_user>
</dataset>
3、创建dbunit connection
依赖于项目中所使用的connection
4、创建IDataSet,通过DataSet来获取测试数据中的数据
FlatXmlDataSet用来获取基于属性存储的属性值
XMLDataSet用来获取基于节点类型存储的属性值
IDatabaseConnection conn = new DatabaseConnection(DbUtil.getConnection());
IDataSet ds = new FlatXmlDataSet(
new FlatXmlProducer(
new InputSource(
TestDbunit.class.getClassLoader().getResourceAsStream("t_user.xml"))));//可以选中代码,右键surround with添加try/catch块
十三、win7 mysql数据库显示中文
不知道为什么配置文件怎么改都不好使,最后在创建数据库的时候指定编码
CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
jdbc访问数据库时也指定编码
DriverManager.getConnection("jdbc:mysql://localhost:3306/junit?useUnicode=true&characterEncoding=utf8",
"root","password");
唉,先这么妥协了。。。