2016-12-01 3 views
0

Я работаю над некоторыми тестами с помощью pg-promise, связанных с отбрасыванием таблицы и воссозданием таблицы.travis-ci postgres `SELECT EXISTS` query return different result

Все тесты проходят на моей локальной машине. Но на travis-ci, кажется, skipp все DROP TABLE ... SQL, в результате тесты терпят неудачу.

У кого-нибудь есть идеи, почему? Это вопрос разрешения?

Есть ли способ для дальнейшего отладки, например, подключиться к travis-ci postgres sever?

Обновление: Я не делал никакого кода, потому что все тесты проходят на моем локальном env, поэтому я думал, что это всего лишь вопрос 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 } на моем местном env.

Это travis-ci вопрос? или выпуск версии postgres?

+0

Один обычно включает в себя некоторый код для этого;) –

+0

@ Vitaly-т я добавил код, который может иметь отношение. – xiaofan2406

+0

@ vitaly-t вот репо, если у вас больше времени для расследования. https://github.com/xiaofan2406/pglize – xiaofan2406

ответ

1

Скорее всего, это связано с тем, что ваша тестовая последовательность неверна, что зависит от состояния гонки, которое вы видите только на Travis Ci, потому что при выполнении тестов он намного более занят, чем ваша локальная машина.

Для начала попробуйте заменить DROP TABLE name на DROP TABLE IF EXISTS name.

И тогда вы можете попробовать использовать CREATE TABLE IF NOT EXISTS name...

+0

спасибо, вы помогли мне выяснить, что вызвало проблему. – xiaofan2406

+0

@ xiaofan2406 Вы хотите принять ответ или опубликовать свой собственный? –