diff --git a/.gitignore b/.gitignore
index cd9109b8db..158421d04a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,3 @@
-<<<<<<< HEAD
-
-
-gogs
-*.exe
-*.exe~
 .DS_Store
 *.db
 *.log
@@ -14,8 +8,6 @@ data/
 *.iml
 public/img/avatar/
 
-=======
->>>>>>> b4db9f67548a41922f1b337daf9c9d2b975b55c4
 # Compiled Object files, Static and Dynamic libs (Shared Objects)
 *.o
 *.a
@@ -37,4 +29,7 @@ _cgo_export.*
 
 _testmain.go
 
-*.exe
\ No newline at end of file
+*.exe
+*.exe~
+gogs
+__pycache__
diff --git a/.gobuild.yml b/.gobuild.yml
index 78a38f2d31..d5bc6606c1 100644
--- a/.gobuild.yml
+++ b/.gobuild.yml
@@ -5,4 +5,6 @@ filesets:
         - conf
         - LICENSE
         - README.md
-        - README_ZH.md
\ No newline at end of file
+        - README_ZH.md
+        - start.bat
+        - start.sh
diff --git a/start.bat b/start.bat
new file mode 100644
index 0000000000..02972b92da
--- /dev/null
+++ b/start.bat
@@ -0,0 +1,2 @@
+@echo off
+gogs.exe web
diff --git a/start.sh b/start.sh
new file mode 100755
index 0000000000..331d340cda
--- /dev/null
+++ b/start.sh
@@ -0,0 +1,6 @@
+#!/bin/bash -
+#
+# start gogs web
+#
+cd "$(dirname $0)"
+./gogs web
diff --git a/tests/.travel.yml b/tests/.travel.yml
new file mode 100644
index 0000000000..09a5752bfb
--- /dev/null
+++ b/tests/.travel.yml
@@ -0,0 +1,9 @@
+command: go test -v {}
+include: ^.+_test\.go$
+path: ./
+depth: 1
+verbose: true
+timeout: 1m
+reload: false
+html: test.html
+notify: []
diff --git a/tests/README.md b/tests/README.md
new file mode 100644
index 0000000000..98693257f2
--- /dev/null
+++ b/tests/README.md
@@ -0,0 +1,11 @@
+## gogs test
+
+this is for developers
+
+## prepare environment
+	go get -u github.com/shxsun/travelexec
+	# start gogs server
+	gogs web
+
+## start test
+	travelexec
diff --git a/tests/default_test.go b/tests/default_test.go
new file mode 100644
index 0000000000..d6f3a03be6
--- /dev/null
+++ b/tests/default_test.go
@@ -0,0 +1,17 @@
+package test
+
+import (
+	"net/http"
+	"testing"
+)
+
+func TestMain(t *testing.T) {
+	r, err := http.Get("http://localhost:3000/")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer r.Body.Close()
+	if r.StatusCode != http.StatusOK {
+		t.Error(r.StatusCode)
+	}
+}
diff --git a/web.go b/web.go
index 412dcb622b..cdec9232a9 100644
--- a/web.go
+++ b/web.go
@@ -160,6 +160,7 @@ func runWeb(*cli.Context) {
 		base.Cfg.MustValue("server", "HTTP_PORT", "3000"))
 	log.Info("Listen: %s", listenAddr)
 	if err := http.ListenAndServe(listenAddr, m); err != nil {
-		log.Critical(err.Error())
+		fmt.Println(err.Error())
+		//log.Critical(err.Error()) // not working now
 	}
 }