我正在做一些测试,pg-promise
涉及删除一个表并重新创建一个表。
所有测试都在我的本地机器上通过。但是travis-ci
,它似乎跳过了所有DROP TABLE ...
SQL,导致测试失败。
有人知道为什么吗?是权限问题吗?
有没有办法让我进一步调试这个,比如连接到travis-ci
postgres 服务器?
更新:我没有放任何代码,因为所有测试都通过了我的本地环境,所以我认为这只是一个travis-ci
问题。以下是我认为traivs-ci
正在跳过的部分。
afterEach('cleanup tables', (done) => {
db.none('DROP TABLE $1~', 'syncTest')
.then(done)
.catch(() => done());
});
beforeEach('cleanup tables', (done) => {
db.none('DROP TABLE $1~', 'syncTest')
.then(done)
.catch(() => done());
});
Update2:经过一些进一步的测试,事实证明测试失败是因为
db.one('SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name=$1)', [tableName])
没有返回预期值。查询{ '?column?': false }
在 travis 上返回,但{ exists: false }
在我的本地环境中返回。
这是一个travis-ci
问题吗?还是postgres版本问题?