使用mysql在travis上运行测试

时间:2017-04-05 16:35:42

标签: java mysql maven junit travis-ci

在过去一周左右的时间里,我一直试图让学校项目的travis进行集成测试。我已经调试了相当多的项目,但现在我被阻止并需要外部帮助。

为了给出一些上下文,到目前为止,我已经调试了java项目,以便可以从eclipse或maven在命令行中启动测试。我已经处理了travis文件,因此创建了一个数据库,运行了数据库脚本并启动了java测试。然而,测试因travis失败而导致测试失败"在数据库中。

This is a link to our repo.

这是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)

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构建和运行的java项目位于rootfolder下 - &gt;后端 - &gt; koalacal-后端。

Here is a link to the error log maven produces on travis.

此行似乎是错误的来源:

  

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Table&#39; koalatest.Calendar&#39;不存在

我有两个假设:

1-创建所有表的sql脚本没有被travis正确运行。

为了测试这个假设,我更改了travis调用的脚本的名称。正如所料,我得到一个错误,说travis无法找到该文件。至少,我知道这行代码会导致travis查看一个sql文件。

话虽如此,我不知道该文件是否在数据库上正常运行。

为了在此帖子中添加所有相关信息,here is a link to the database script.

2-测试无法正确连接到数据库。

以下是配置文件,其中包含有关要连接到哪个数据库的信息:- mysql -u root --default-character-set=utf8 koalatest < backend/koalacal-backend/koalacal.sql


TestInstance=true user=root password= serverName=localhost databaseName=koalacal portNumber=3306


如果参数TestInstance设置为true,则测试将使用信息testUser,testPassword,testServerName,testDatabaseName和testPortNumber连接到相关数据库。

我相信配置文件中当前包含的连接信息与travis文档说我们需要连接到mysql数据库的方式相匹配。我试图将testUser更改为无效的东西(如root3)并按预期获得错误消息。

也许某种程度上测试无法连接到数据库并且不会产生相关的错误消息,但我对此表示怀疑。

有人可以看看我的问题,看看我是否错过了一些明显的(或不是)?我不知道还有什么可以尝试,而且我不想在技术问题上被阻止一周。

1 个答案:

答案 0 :(得分:1)

对于任何可能google travis mysql并且与我的版本有类似错误的人,我解决了我的问题。

错误是由区分大小写问题引起的。 java代码试图连接到像&#39; Calendar&#39;这样的表。和&#39;活动&#39;而sql脚本创建了表格&#39; calendar&#39;和&#39;事件&#39;。

对此进行故障排除需要很长时间,因为区分大小写在我的计算机上没有造成任何问题。 Maven可以正常运行其测试而没有任何问题。只有在travis服务器上,表格的区分大小才开始起作用。