मैंने अपने वेब ऐप के परीक्षण को बढ़ाने के लिए एक छोटी सी लाइब्रेरी लिखी है और अब इसे एक अलग ओपन-सोर्स प्रोजेक्ट में अलग करना चाहता हूं। पुस्तकालय इतना सामान्य है कि यह न केवल मेरे लिए अन्य परियोजनाओं पर बल्कि दूसरों के लिए भी उपयोगी होगा।

एकमात्र समस्या यह है कि यह कस्टम मैचर्स और कुछ जेस्ट-विशिष्ट तर्क का एक सेट लागू करता है (यह वास्तविक परीक्षण कोड को कम वर्बोज़ बनाने की सुविधा के रूप में किया जाता है)। अन्य परीक्षण ढांचे के लिए समकक्ष तर्क लागू करना सीधे आगे होना चाहिए, लेकिन मैं यह समझने के लिए संघर्ष कर रहा हूं कि कौन सा परीक्षण ढांचा चल रहा है (सही दावा तर्क का चयन करने के लिए) लगातार पहचान कैसे करें।

मुझे पता है कि जेस्ट कुछ पर्यावरण चर सेट करता है (कैसे करें निर्धारित करें कि जेस्ट कोड चला रहा है या नहीं?), लेकिन उत्तर के आधार पर जेस्ट-विशिष्ट चर लगातार सेट नहीं होता है और NODE_ENV सभी द्वारा समान test मान पर सेट किया जाएगा परीक्षण ढांचे। कौन सा परीक्षण ढांचा परीक्षण निष्पादित कर रहा है यह पता लगाने के लिए सबसे साफ तरीका क्या है? धन्यवाद

0
Alexander Tsepkov 28 अक्टूबर 2019, 17:12

2 जवाब

सबसे बढ़िया उत्तर

सभी पर्यावरण चरों को देखने के बाद, यह देखते हुए कि कौन से संगत हैं और कौन से नहीं हैं, यहां एक फ़ंक्शन है जिसे मैंने लॉन्चर/ढांचे को निर्धारित करने के लिए एक साथ रखा है:

const path = require('path');
function detectFramework() {
  const launcher = process.env._;
  return path.basename(launcher);
}

यह इस बात पर ध्यान दिए बिना काम करेगा कि आप अपनी लॉन्च स्क्रिप्ट को package.json में कैसे उपनाम देते हैं। उम्मीद है कि किसी और को भी यह उपयोगी लगेगा।

0
Alexander Tsepkov 28 अक्टूबर 2019, 15:35

मैं process.env.JEST_WORKER_ID स्थिरांक का उपयोग करता हूं। कुछ इस तरह:

if(process.env.JEST_WORKER_ID) {
    //You are in test mode.
}
0
Pavot 27 जिंदा 2021, 17:02