2014-09-26 13 views

cevap

2

Sen, her testten önce yelkenler uygulamasını kaldırın veritabanını (migrate: 'drop') yeniden başladı. Örnek:

Sails = require('sails/lib/app'); 
app = Sails(); 

var testConfig = { 
    environment: 'test', 
    port: 1337, 
    log: { 
     level: 'error' 
    }, 
    connections: { 
     testDB: { 
      adapter: 'sails-memory' 
     } 
    }, 
    connection: 'testDB', 

    //wipe/drop ALL my data and rebuild models every time 
    migrate: 'drop' 
}; 

beforeEach(function (done) { 
    // start sails app for tests 
    app.lift(testConfig, function (err, sails) { 
     done(err); 
    }); 
}); 

//tests... 
+1

"migrate: drop"; bellek bağdaştırıcısı her seferinde yeniden başlar! – sgress454

+0

:) – Victor

+0

bilmek iyi sgress454 @ Ben yaklaşık bu-- kaldırma işlemi ne kadar pahalı olduğunu merak etmişti? Şu anda sadece birkaç testim var, ancak test sayısı arttıkça, ek yükün yavaş çalışan bir test paketine dahil olup olmadığını merak ediyorum. Senin deneyimin nedir? Teşekkürler! – HolySamosa

7

Çalıştığım görülen başka bir yöntem buldum. Bu, orm hook'un her testten önce yeniden yüklemesini söyleyen bir olay çıkarır. Bellek db veya disk db 'drop' göç seçeneğiyle kullanılıyorsa, istenen sonucu alır.

beforeEach((done) => { 
    "use strict"; 
    // Drops database between each test. This works because we use 
    // the memory database 
    sails.once('hook:orm:reloaded', done); 
    sails.emit('hook:orm:reload'); 
}); 
+0

Bence bu diğer veritabanında da gayet iyi çalışıyor. Mongodb ile çalışır. – paulodiovani

İlgili konular