कोड कवरेज डेटा इकट्ठा करने के लिए, --instrumentation_filter
से मैच होने वाले नियम के टारगेट के लिए, सोर्स फ़ाइलों और इंस्ट्रूमेंटेशन मेटाडेटा फ़ाइलों की जानकारी शामिल होती है. कवरेज डेटा इकट्ठा करने की सुविधा चालू होने पर, instrumented_files
और metadata_files
में मौजूद पाथ को मिलाकर बनाया गया मेनिफ़ेस्ट, टेस्ट ऐक्शन में इनपुट के तौर पर पास किया जाता है. साथ ही, एनवायरमेंट वैरिएबल COVERAGE_MANIFEST
में मेनिफ़ेस्ट का पाथ नोट किया जाता है. मेटाडेटा फ़ाइलों को भी टेस्ट ऐक्शन में इनपुट के तौर पर पास किया जाता है, लेकिन सोर्स फ़ाइलों को नहीं. जब aspect के लागू करने वाले फ़ंक्शन से InstrumentedFilesInfo
दिखाया जाता है, तो बेस नियम के टारगेट में मौजूद किसी भी InstrumentedFilesInfo
को अनदेखा कर दिया जाता है.
सदस्य
instrumented_files
depset InstrumentedFilesInfo.instrumented_files
File
में से depset
ऑब्जेक्ट, इस टारगेट और इसकी डिपेंडेंसी के लिए इंस्ट्रुमेंट की गई सोर्स फ़ाइलें दिखाता है.
metadata_files
depset InstrumentedFilesInfo.metadata_filesइस टारगेट और उसकी डिपेंडेंसी के लिए कवरेज मेटाडेटा फ़ाइलों को दिखाने वाले
File
ऑब्जेक्ट के depset
. इन फ़ाइलों में ऐसी अतिरिक्त जानकारी होती है जो कोड के लागू होने के बाद, LCOV-फ़ॉर्मैट कवरेज का आउटपुट जनरेट करने के लिए ज़रूरी होती है. उदाहरण के लिए, gcc
को -ftest-coverage
पर चलाने पर जनरेट हुई .gcno
फ़ाइलें.
to_json
string InstrumentedFilesInfo.to_json()अब काम नहीं करता. यह एपीआई अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर निर्भर न रहें.
---incompatible_struct_has_no_methods
के साथ, यह बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, जल्द ही हटाए जाने वाले वर्शन के साथ काम करता है. स्ट्रक्चर पैरामीटर से JSON स्ट्रिंग बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (बार-बार) स्ट्रिंग, इंटेस, बूलियन, अन्य स्ट्रक्चर, इन टाइप की सूची या स्ट्रिंग कुंजियों और इन टाइप की वैल्यू वाली डिक्शनरी हों. स्ट्रिंग में कोटेशन और नई लाइन को एस्केप किया जाता है. उदाहरण:
struct(key=123).to_json() # {"key":123} struct(key=True).to_json() # {"key":true} struct(key=[1, 2, 3]).to_json() # {"key":[1,2,3]} struct(key='text').to_json() # {"key":"text"} struct(key=struct(inner_key='text')).to_json() # {"key":{"inner_key":"text"}} struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json() # {"key":[{"inner_key":1},{"inner_key":2}]} struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json() # {"key":{"inner_key":{"inner_inner_key":"text"}}}.
यह सुविधा अब काम नहीं करती: इसके बजाय, json.encode(x) या json.encode_indent(x) का इस्तेमाल करें. यह स्ट्रक्चर के अलावा, दूसरी वैल्यू पर भी काम करता है और स्ट्रक्चर फ़ील्ड नेमस्पेस को खराब नहीं करता.
to_proto
string InstrumentedFilesInfo.to_proto()अब काम नहीं करता. यह एपीआई अब काम नहीं करता. इसे जल्द ही हटा दिया जाएगा. कृपया इस पर भरोसा न करें. यह
---incompatible_struct_has_no_methods
के साथ बंद है. इस फ़्लैग का इस्तेमाल करके पुष्टि करें कि आपका कोड, जल्द ही हटाए जाने वाले वर्शन के साथ काम करता है. स्ट्रक्चर पैरामीटर से टेक्स्ट मैसेज बनाता है. यह तरीका सिर्फ़ तब काम करता है, जब सभी स्ट्रक्चर एलिमेंट (बार-बार) स्ट्रिंग, इंटेज, बूलियन, दूसरे स्ट्रक्चर या डिक्ट या इन टाइप की सूचियां हों. स्ट्रिंग में कोटेशन और नई लाइन को एस्केप किया जाता है. स्ट्रक्ट कुंजियों को क्रम से लगाया जाता है. उदाहरण:
struct(key=123).to_proto() # key: 123 struct(key=True).to_proto() # key: true struct(key=[1, 2, 3]).to_proto() # key: 1 # key: 2 # key: 3 struct(key='text').to_proto() # key: "text" struct(key=struct(inner_key='text')).to_proto() # key { # inner_key: "text" # } struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto() # key { # inner_key: 1 # } # key { # inner_key: 2 # } struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto() # key { # inner_key { # inner_inner_key: "text" # } # } struct(foo={4: 3, 2: 1}).to_proto() # foo: { # key: 4 # value: 3 # } # foo: { # key: 2 # value: 1 # }
काम नहीं करता: इसके बजाय, proto.encode_text(x) का इस्तेमाल करें.