لماذا لا يطبع println! النص في اختبارات الوحدة في Rust؟
مرحبًا! بدأت تعلم Rust وواجهت مشكلة غريبة عند كتابة اختبارات الوحدة. أريد طباعة معلومات تصحيح باستخدام الماكرو `println!`، لكن لا يظهر شيء في الطرفية. إليك الكود الخاص بي:
```rust
#[cfg(test)]
mod tests {
#[test]
fn test_debug_output() {
let value = 42;
println!("القيمة: {}", value);
assert_eq!(value, 42);
}
}
```
عند تشغيل الاختبارات بالأمر `cargo test`، أرى فقط:
```
running 1 test
test tests::test_debug_output ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
```
لا يوجد أي إخراج لـ `"القيمة: 42"`. كنت أتوقع أن يعمل `println!` كما في الكود العادي. لماذا يحدث هذا؟ كيف يمكنني رؤية إخراج التصحيح أثناء الاختبار؟ أستخدم Rust 1.70.0، لكنني جربت إصدارات أحدث أيضًا والنتيجة نفسها.
لقد جربت بالفعل: إعادة تشغيل الطرفية، تنظيف ذاكرة التخزين المؤقت لـ cargo، التحقق من أن الاختبار يعمل بالفعل (ينجح). في الـ