How Contracts Are Collected
snforge supports two mechanisms for collecting contracts used in tests.
- By default, optimized collection mechanism is used.
- If running
snforge testwith--no-optimizationflag, the old collection mechanism is used.
Differences Between Collection Mechanisms
| Feature | Old Mechanism | Optimised Mechanism |
|---|---|---|
Using contracts from /src | ✅ | ✅ |
Using contracts from /tests | ❌ | ✅ |
Using contracts from modules marked with #[cfg(test)] | ❌ | ✅ |
| Using contracts from dependencies | ✅ | ✅ |
| Contracts more closely resemble ones from real network | ✅ | ❌ |
| Less compilation steps required (faster compilation) | ❌ | ✅ |
Additional compilation step required (scarb build) | ✅ | ❌ |