benim Sails birim testler için veritabanı olarak 'yelkenler-bellek' kullanıyorum ve ideal bireysel testlerden sonra tüm veritabanını silmek istiyorum. Tüm veritabanını bırakmamın bir yolu var mı?Tüm yelken-bellek veritabanını bıraktın mı?
9
A
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...
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
"migrate: drop"; bellek bağdaştırıcısı her seferinde yeniden başlar! – sgress454
:) – Victor
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