यह एक ऐसा प्रोवाइडर है जिसे एक्ज़ीक्यूट किए जा सकने वाले नियमों से वापस लाया जा सकता है. इससे उस एनवायरमेंट को कंट्रोल किया जा सकता है जिसमें उसका एक्ज़ीक्यूट किया जा सकने वाला कोड चलता है.
सदस्य
एनवायरमेंट
dict RunEnvironmentInfo.environment
यह स्ट्रिंग की और वैल्यू की एक ऐसी मैपिंग है जो एनवायरमेंट वैरिएबल और उनकी वैल्यू को दिखाती है. जब इस प्रोवाइडर को वापस लाने वाले टारगेट को टेस्ट के तौर पर या रन कमांड के ज़रिए एक्ज़ीक्यूट किया जाता है, तब ये उपलब्ध होंगे.
inherited_environment
List RunEnvironmentInfo.inherited_environment
यह एनवायरमेंट वैरिएबल के नामों का एक क्रम है. जब इस प्रोवाइडर को वापस लाने वाले टारगेट को टेस्ट के तौर पर या रन कमांड के ज़रिए एक्ज़ीक्यूट किया जाता है, तब ये वैरिएबल शेल एनवायरमेंट से ली गई अपनी मौजूदा वैल्यू के साथ उपलब्ध होते हैं. अगर कोई वैरिएबल
environment और
inherited_environment, दोनों में शामिल है, तो शेल एनवायरमेंट से मिली वैल्यू को प्राथमिकता दी जाएगी. यह टेस्ट के नियमों के लिए सबसे ज़्यादा काम का है. ये नियम
bazel test के तहत, हर्मेटिक एनवायरमेंट के साथ चलते हैं. साथ ही, इस मैकेनिज़्म का इस्तेमाल करके, बाहरी एनवायरमेंट से किसी वैरिएबल को नॉन-हर्मेटिक तरीके से शामिल किया जा सकता है. इसके उलट,
bazel run पहले से ही बाहरी एनवायरमेंट को फ़ॉरवर्ड करता है. हालांकि, यह ध्यान रखना ज़रूरी है कि किसी हर्मेटिक टेस्ट के लिए, एनवायरमेंट पर नॉन-हर्मेटिक डिपेंडेंसी को हार्डकोड करना हैरान करने वाला हो सकता है. साथ ही, इससे संवेदनशील जानकारी गलती से भी सामने आ सकती है. टेस्ट एनवायरमेंट को
--test_env फ़्लैग के साथ साफ़ तौर पर सेट करना बेहतर है. इसके अलावा, इस फ़्लैग का इस्तेमाल न करना और एनवायरमेंट को साफ़ तौर पर पॉप्युलेट करना बेहतर है.