一、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");
唉,先這麼妥協了。。。