我正在使用pg-promise
進行一些測試,涉及刪除表並重新創建表。travis-ci postgres`SELECT EXISTS`查詢返回不同的結果
所有的測試都通過我的本地機器。但在travis-ci
上,似乎滑動了所有的DROP TABLE ...
SQL,導致測試失敗。
任何人有任何想法爲什麼?這是一個許可問題嗎?
有沒有辦法讓我進一步調試這個,就像連接到travis-ci
postgres服務器?
更新:我沒有把任何代碼cuz所有的測試通過我的本地環境,所以我認爲這只是一個travis-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])
是不返回預期值。該查詢返回travis上的{ '?column?': false }
,但在本地環境中返回{ exists: false }
。
這是一個travis-ci
的問題?或postgres版本問題?
一個通常包括這樣的代碼;) –
@維塔利-T我添加了一些代碼,可能是相關的。 – xiaofan2406
@ vitaly -t如果您有更多時間進行調查,則此處爲回購。 https://github.com/xiaofan2406/pglize – xiaofan2406