لإعادة إنتاج:
yarn
yarn coverage
ويجب أن تحصل على هذا الخطأ:
+1
wighawag هل هي مشكلة من جانبي؟ أم أنها مشكلة في النشر الثابت؟
نفس الشيء بالنسبة لي ، الجري:
├─ @ nomiclabs / [email protected]
├─ @ nomiclabs / [email protected]
├─ [email protected]
├─ [email protected]
├─ صلابة - [email protected]
+1
يبدو أنه تم تقديم هذا في 0.8.x
. استخدام 0.7.11
يعمل بالنسبة لي.
شكرا لكم جميعا على الإبلاغ.
آسف على الرد المتأخر ، أنا أسافر حاليًا مع العائلة وليس لدي الكثير من الوقت على الكمبيوتر المحمول الخاص بي.
لقد ألقيت نظرة اليوم والمشكلة هي أن تغطية الصلابة تنشئ كائن شبكة جديدًا هنا: https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js # L136 -L141 يتجاوز أي تعديلات تم إجراؤها بواسطة المكونات الإضافية الأخرى.
واجه توافق نشر hardhat / Solidity-Cover مشكلة مماثلة في الماضي للسبب نفسه (راجع https://github.com/sc-forks/solidity-coverage/issues/624) وأدى النشر الثابت إلى حل بديل لها في ذلك الوقت ، ولكن الإصدار الأحدث للنشر الثابت يعتمد على القدرة على إضافة حقل إلى كائن الشبكة ، وبالتالي فهو يعتمد أيضًا على الوصول إلى كائن الشبكة في وقت استيراد المكون الإضافي ، وبالتالي يجب أن يكون الإصلاح في رأيي في تغطية الصلابة. بدلاً من إنشاء كائن جديد ، يمكن لـ Solidity-Cover ببساطة تعديل hre.network
مع الاحتفاظ بأي إضافة أخرى من المكونات الإضافية الأخرى إليه.
استبدال هذه الخط https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.js#L136 -L141
لهذه:
env.network.name = networkName;
env.network.config = networkConfig;
env.network.provider = provider;
env.network.isHardhatEVM = isHardhatEVM;
يجب القيام به
ما رأيك cgewecke ؟
ولكن ما هو env
؟ كيف يمكنني تكوينه؟
wighawag شكرًا على الوقت الذي استغرقته في التحقيق !!
آمل أن يتمكن cgewecke من تعديل تغطية الصلابة قريبًا ...
env.network.name = networkName; env.network.config = networkConfig; env.network.provider = provider; env.network.isHardhatEVM = isHardhatEVM;
يجب القيام به
تم اختباره وهو يعمل.
env.network.name = networkName; env.network.config = networkConfig; env.network.provider = provider; env.network.isHardhatEVM = isHardhatEVM;
يجب القيام به
تم اختباره وهو يعمل.
em ~ ، ولكن ما هو env
؟ process.env
أو require('hardhat').network.isHardhatEVM
؟
GeekBerry إذا نظرت إلى الرمز wighawag المشار إليه ، فستفهم: https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.
GeekBerry إذا نظرت إلى الرمز wighawag المشار إليه ، فستفهم: https://github.com/sc-forks/solidity-coverage/blob/3c0f3a5c7db26e82974873bbf61cf462072a7c6d/plugins/resources/nomiclabs.utils.
قمت بالاختراق في node_modules/solidity-coverage/plugins/resources/nomiclabs.utils.js
وقمت بتغيير السطر 136 إلى
env.network = Object.assign({
name: networkName,
config: networkConfig,
provider: provider,
isHardhatEVM: isHardhatEVM,
}, env.network);
ثم قم بتشغيل التغطية بنجاح.
أعتقد أن مؤلف تغطية الصلابة قد يصلح هذه المشكلة الإصدار التالي.
+1
مرحبًا بالجميع ، المشكلة من ناحية تغطية الصلابة ، سأغلق المشكلة لأن النشر الثابت لا يمكنه فعل الكثير.
في القالب الخاص بي ، أقوم بتصحيح تغطية الصلابة بـ patch-package
وعملها ، راجع: https://github.com/wighawag/template-ethereum-contracts/blob/main/patches/solidity-coverage٪2B0 .7.16.patch
يوجد هذا العلاقات العامة التي تصلحه في تغطية الصلابة: https://github.com/sc-forks/solidity-coverage/pull/647
التعليق الأكثر فائدة
قمت بالاختراق في
node_modules/solidity-coverage/plugins/resources/nomiclabs.utils.js
وقمت بتغيير السطر 136 إلىثم قم بتشغيل التغطية بنجاح.
أعتقد أن مؤلف تغطية الصلابة قد يصلح هذه المشكلة الإصدار التالي.