我一直在嘗試上個星期左右的時間來對集成測試在學校項目的Travis上工作。我已經調試了一些項目,但現在我被封鎖了,需要外部幫助。使用mysql在Travis上運行測試
爲了給出一點上下文,到目前爲止,我已經調試了java項目,以便測試可以從eclipse或Maven在命令行中啓動。我在travis文件上工作過,以便創建數據庫,運行數據庫腳本並啓動java測試。但是,由於數據庫中的「表格丟失」,測試在travis上失敗。
這是travis.yml文件的代碼:
language : java
jdk:
- oraclejdk8
service:
- mysql
before_script:
- mysql -e 'DROP DATABASE IF EXISTS koalatest'
- mysql -e 'CREATE DATABASE IF NOT EXISTS koalatest;'
- mysql -u root --default-character-set=utf8 koalatest < backend/koalacal-backend/koalacal.sql
script: cd backend && cd koalacal-backend && mvn test -X
after_success:
- bash <(curl -s https://codecov.io/bash)
正在建造和運行行家位於下rootfolder Java項目 - >後臺 - > koalacal,後端。
Here is a link to the error log maven produces on travis.
此行似乎是錯誤的來源:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'koalatest.Calendar' doesn't exist
我有兩個假設:
1-創建所有的表是不是被運行SQL腳本妥當由travis。
爲了驗證這個假設,我改變了travis調用的腳本的名字。正如所料,我得到一個錯誤,說特拉維斯無法找到該文件。至少,我知道這行代碼會導致travis查找一個sql文件。
- mysql -u root --default-character-set=utf8 koalatest < backend/koalacal-backend/koalacal.sql
這就是說,我不知道該文件是否在數據庫上正常運行。
對於把所有相關信息在這篇文章的緣故,here is a link to the database script.
2-測試無法正常連接到數據庫。
這裏是一個包含有關連接到其數據庫中的信息的配置文件:
TestInstance =真 用戶=根 密碼= SERVERNAME =本地主機 的databaseName = koalacal 端口號= 3306
testUser=root
testPassword=
testServerName=127.0.0.1
testDatabaseName=koalatest
testPortNumber=3306</code>
如果參數TestInstance設置爲true,則測試將信息testUser,testPassword,testServerName,testDatabaseName和testPortNumber連接到相關數據庫。
我相信當前包含在配置文件中的連接信息與travis文檔中說我們需要連接到mysql數據庫的方式相匹配。我試圖將testUser更改爲無效(如root3),並按預期收到錯誤消息。
也許在某種程度上測試不能連接到數據庫,也不會產生相關的錯誤消息,但我懷疑它。
有人可以看看我的問題,看看我是否錯過了一些明顯的(或不)?我不知道還有什麼可以嘗試的,我不希望在技術問題上再被封鎖一週。
試着將你的數據庫創建腳本移動到'before_install: - mysql -e'CREATE DATABASE myapp_test;' –
看看這裏:https://docs.travis-ci.com/user/database-setup/ #Note-on-test-database –
不錯的嘗試,但我得到了相同的結果: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:表'koalatest.Calendar'不存在 – Neph