កម្មវិធីរបស់អ្នករកឃើញប្រូកស៊ីប្រព័ន្ធ ប៉ុន្តែតេស្ត JUnit មិនរកឃើញទេ។ មុនពេលផ្លាស់ប្តូរកូដរកឃើញ សូមកំណត់ថា JVM ណាដំណើរការដំណើរការនីមួយៗ និងអាគុយម៉ង់អ្វីដែលវាបានទទួល។

JDK ចាត់ទុក java.net.useSystemProxies ជាលក្ខណសម្បត្តិដែលពិនិត្យម្តងពេលចាប់ផ្តើម។ ការកំណត់វានៅក្នុងវិធីសាស្ត្រតេស្តអាចយឺតពេលពេកក្នុងការផ្លាស់ប្តូរការសម្រេចចិត្តចាប់ផ្តើមនោះ។

ឧបករណ៍ចាប់ផ្តើមកម្មវិធី IDE ឧបករណ៍ដំណើរការតេស្ត IDE Maven ខ្លួនឯង និងដំណើរការតេស្ត Surefire ដែលបានបំបែក សុទ្ធតែអាចមានអាគុយម៉ង់ VM ផ្សេងគ្នា។ ការកំណត់ប្រូកស៊ីក្នុងឧបករណ៍ចាប់ផ្តើមមួយ មិនមែនជាភស្តុតាងថាឧបករណ៍ចាប់ផ្តើមមួយផ្សេងទៀតបានបញ្ជូនវាទេ។

ពិនិត្យការកំណត់រចនាសម្ព័ន្ធដំណើរការដែលបានបំបែក

argLine របស់ Surefire ផ្តល់ជម្រើស JVM តាមបន្ទាត់ពាក្យបញ្ជាសម្រាប់ការប្រតិបត្តិដែលបានបំបែក។ ជម្រើសចាប់ផ្តើមអាចស្ថិតនៅទីនោះ នៅពេលតេស្តដំណើរការក្នុងសាខាបែបនេះ៖

<argLine>-Djava.net.useSystemProxies=true</argLine>

បញ្ចូលជម្រើសទៅក្នុងការកំណត់រចនាសម្ព័ន្ធដែលមានស្រាប់របស់គម្រោង។ ការជំនួស argLine ដែលមានស្រាប់អាចបោះបង់ភ្នាក់ងារគ្របដណ្តប់ ឬការកំណត់ JVM ផ្សេងទៀតដែលចាំបាច់។ ប្រសិនបើ build មិនប្រើសាខាណាមួយ សូមពិនិត្យ JVM ដែលពិតជាផ្ទុកតេស្តជំនួសវិញ។ argLine ត្រូវបានចាត់ទុកថាមានប្រសិទ្ធភាពសម្រាប់តែការប្រតិបត្តិដែលបានបំបែកប៉ុណ្ណោះ។

លក្ខណសម្បត្តិដែលមិនងាយរងផលប៉ះពាល់ពេលចាប់ផ្តើម ហើយផ្តល់តាមយន្តការលក្ខណសម្បត្តិរបស់ស៊ុមតេស្ត មានវដ្តជីវិតខុសគ្នា។ មិនត្រូវសន្មតថាលក្ខណសម្បត្តិនីមួយៗឈានដល់ VM លឿនគ្រប់គ្រាន់ គ្រាន់តែដោយសារ System.getProperty() ត្រឡប់ខ្សែអក្សរដែលចង់បានអំឡុងពេលតេស្ត។

សម្រាប់ការធ្វើតេស្តនាំផ្លូវប្រូកស៊ីដែលផ្តោតលើ អតិថិជនដែលបានកំណត់ច្បាស់លាស់ក៏អាចកាត់បន្ថយការពឹងផ្អែកលើការកំណត់ផ្ទៃតុផងដែរ។ Java 11+ HttpClient អាចប្រើ HTTP ProxySelector ក្នុងអតិថិជន សម្រាប់គោលបំណងនោះ។ រក្សាជម្រើសនោះឱ្យឃើញក្នុងចេតនារបស់តេស្ត៖ ការធ្វើតេស្តផ្លូវអតិថិជន និងការធ្វើតេស្តការរកឃើញប្រូកស៊ីរបស់ប្រព័ន្ធប្រតិបត្តិការ គឺជាការត្រួតពិនិត្យខុសគ្នា។

អត្ថបទពាក់ព័ន្ធ