gpt4 book ai didi

java - 使用 mysql 在 travis 上运行测试

转载 作者:行者123 更新时间:2023-11-29 10:54:21 25 4
gpt4 key购买 nike

上周左右我一直在尝试让集成测试在 travis 上为一个学校项目工作。我已经调试了该项目的相当一部分,但现在我被阻止并需要外部帮助。

为了提供一些背景信息,到目前为止,我已经调试了 java 项目,以便可以从 eclipse 或命令行中的 maven 启动测试。我已经处理了 travis 文件,以便创建数据库、运行数据库脚本并启动 java 测试。然而,由于数据库中的“表丢失”,travis 上的测试失败。

This is a link to our repo.

这是 travis.yml 文件的代码:



<pre><code>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)
</code></pre>

maven 正在构建和运行的 java 项目位于 rootfolder -> backend -> koalacal-backend 下。

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- travis 未正确运行创建所有表的 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- 测试无法正确连接到数据库。

以下是配置文件,其中包含有关要连接到哪个数据库的信息:<br/>
TestInstance=true
user=root
password=
serverName=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),并收到预期的错误消息。

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

有人可以看看我的问题并看看我是否错过了一些明显的(或没有)吗?我不知道还能尝试什么,而且我不想因为技术问题再被封锁一周。

最佳答案

对于任何可能在 google travis mysql 上遇到与我遇到的类似错误的人,我解决了我的问题。

该错误是由区分大小写问题引起的。 java 代码尝试连接到“日历”和“事件”等表,而 sql 脚本创建了“日历”和“事件”表。

花了很长时间来解决这个问题,因为区分大小写在我的机器上没有造成任何问题。 Maven 可以正常运行测试,没有任何问题。只有在 travis 服务器上,表的区分大小写才开始变得重要。

关于java - 使用 mysql 在 travis 上运行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43236895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com