MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

परीक्षण के लिए इन-मेमोरी MongoDB?

आप इसे mongodb-memory-server का उपयोग करके पूरा कर सकते हैं . पैकेज आपके होम डायरेक्टरी में एक मोंगोड बाइनरी डाउनलोड करता है और आवश्यकतानुसार एक नई मेमोरी-समर्थित मोंडोडीबी इंस्टेंस को इंस्टेंट करता है। प्रत्येक परीक्षण फ़ाइल के लिए आप एक नया सर्वर स्पिन कर सकते हैं जिसका अर्थ है कि आप उन सभी को समानांतर में चला सकते हैं।

jest का उपयोग करने वाले पाठकों के लिए और देशी mongodb ड्राइवर , आपको यह कक्षा उपयोगी लग सकती है:

const { MongoClient } = require('mongodb');
const { MongoMemoryServer } = require('mongodb-memory-server');

// Extend the default timeout so MongoDB binaries can download
jest.setTimeout(60000);

// List your collection names here
const COLLECTIONS = [];

class DBManager {
  constructor() {
    this.db = null;
    this.server = new MongoMemoryServer();
    this.connection = null;
  }

  async start() {
    const url = await this.server.getUri();
    this.connection = await MongoClient.connect(url, { useNewUrlParser: true });
    this.db = this.connection.db(await this.server.getDbName());
  }

  stop() {
    this.connection.close();
    return this.server.stop();
  }

  cleanup() {
    return Promise.all(COLLECTIONS.map(c => this.db.collection(c).remove({})));
  }
}

module.exports = DBManager;

फिर प्रत्येक परीक्षण फ़ाइल में आप निम्न कार्य कर सकते हैं:

const dbman = new DBManager();

afterAll(() => dbman.stop());
beforeAll(() => dbman.start());
afterEach(() => dbman.cleanup());

मुझे संदेह है कि यह दृष्टिकोण अन्य परीक्षण ढांचे के लिए समान हो सकता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेस्टेड सरणी mongodb से तत्व निकालें

  2. pymongo:डुप्लिकेट हटाएं (मानचित्र कम करें?)

  3. कैसे खोज विधि से नेवला परिणाम वापस करने के लिए?

  4. $unset खाली है। आपको इस प्रकार एक फ़ील्ड निर्दिष्ट करना होगा:{$unset:{<फ़ील्ड>:...}}

  5. एक प्रश्न में प्रत्येक संपत्ति के लिए अलग-अलग मूल्यों और गणनाओं को समूहित करें