2015-01-10 10 views
9

Dire, ho una cassa con una dipendenza che ha una funzione opzionale. Ora questa funzione è utile soprattutto per i test, ma la cassa stessa è una dipendenza per l'intero codice. È possibile istruire il carico a utilizzare la funzione solo per i test?Come utilizzare una funzionalità di una dipendenza solo per il test?

Nel mio esempio concreto la funzione opzionale dipende da quickcheck, che non necessariamente voglio rendere una dipendenza obbligatoria per gli utenti della mia cassa.

risposta

7

È possibile use a feature per un development dependency proprio come si farebbe per le dipendenze regolari. Nel caso di quickcheck, la sua unica funzione è collect_impls, in modo da poter aggiungere questo alla tua Cargo.toml:

[dev-dependencies.quickcheck] 
version = "*" 
features = ["collect_impls"] 

N.B. Questo è stato effettivamente fatto male all'interno di quickcheck. I just fixed it in 0.1.29.

+0

Quindi nel mio caso quickcheck è esso stesso una dev-dependency, ma anche una dipendenza di una caratteristica della mia dipendenza. In particolare, ho [implementato 'Arbitrary' per i tipi in nalgebra] (https://github.com/sebcrozet/nalgebra/pull/74). Tuttavia, il compilatore non vede gli attributi facoltativi, quando provo a dipendere dalla funzione come suggerito. Mi sento come se mi mancasse ancora qualcosa qui. – aepsil0n

+0

Non importa, il mio problema era che stavo mescolando un dep di github su quickcheck con le casse di nalgebra. Troppo sottile ... – aepsil0n

Problemi correlati