私は先週、学校プロジェクトのトラビスで統合テストを行うようにしてきました。私はかなりのプロジェクトをデバッグしましたが、今はブロックされており、外部の助けが必要です。mysqlを使ってtravisでテストを実行する
これまでのところ、Javaプロジェクトをデバッグして、テストをEclipseから起動するか、コマンドラインでmavenから起動できるようにしました。私は、データベースが作成され、データベーススクリプトが実行され、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)
のmavenによって構築され、実行されているが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
私は2つの仮説を持っている:すべてのテーブルを作成します
の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 =真 ユーザー=ルート パスワード= サーバ名= localhostを databaseNameの= koalacal のportNumber = 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 'はデータベースmyapp_testのCREATE;'' –
はこちらをご覧ください:https://docs.travis-ci.com/user/database-setup/ #ノート・オン・テスト・データベース –
ニースを試しても同じ結果が得られます。 com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 'koalatest.Calendar'テーブルが存在しません – Neph