--instrumentation_filter से मैच होने वाले टारगेट के लिए होती हैं.
कवरेज डेटा इकट्ठा करने की सुविधा चालू होने पर, टेस्ट ऐक्शन को इनपुट के तौर पर एक मेनिफ़ेस्ट पास किया जाता है. इसमें instrumented_files और metadata_files में मौजूद पाथ शामिल होते हैं. साथ ही, मेनिफ़ेस्ट का पाथ, एनवायरमेंट वैरिएबल COVERAGE_MANIFEST में नोट किया जाता है. मेटाडेटा फ़ाइलें, लेकिन सोर्स फ़ाइलें नहीं, टेस्ट ऐक्शन को इनपुट के तौर पर भी पास की जाती हैं. जब किसी पहलू के लागू करने वाले फ़ंक्शन से InstrumentedFilesInfo रिटर्न होता है, तो बेस रूल टारगेट से मिलने वाले किसी भी InstrumentedFilesInfo को अनदेखा कर दिया जाता है.
सदस्य
instrumented_files
depset InstrumentedFilesInfo.instrumented_files
depset इस टारगेट और इसकी डिपेंडेंसी के लिए, इंस्ट्रूमेंट किए गए सोर्स फ़ाइलों को दिखाने वाले File ऑब्जेक्ट का.
metadata_files
depset InstrumentedFilesInfo.metadata_files
depset इस टारगेट और इसकी डिपेंडेंसी के लिए, कवरेज मेटाडेटा फ़ाइलों को दिखाने वाले File ऑब्जेक्ट का. इन फ़ाइलों में, कोड के एक्ज़ीक्यूट होने के बाद, 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 पैरामीटर से एक टेक्स्ट मैसेज बनाता है. यह तरीका तभी काम करता है, जब स्ट्रक्चर के सभी एलिमेंट गहराई तक हर स्तर पर इस टाइप के हों: स्ट्रिंग, पूर्णांक, बूलियन, अन्य स्ट्रक्चर या डिक्शनरी या इन टाइप की सूचियां. स्ट्रिंग में मौजूद कोट और नई लाइनों को एस्केप किया जाता है. स्ट्रक्ट कुंजियों को क्रम से लगाकर एक-एक करके प्रोसेस किया जाता है. उदाहरण:
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) का इस्तेमाल करें.