2015-01-10 8 views
9

Say, ich habe eine Kiste mit einer Abhängigkeit, die eine optionale Funktion hat. Jetzt ist diese Funktion hauptsächlich zum Testen nützlich, aber die Kiste selbst ist eine Abhängigkeit für den gesamten Code. Kann Fracht angewiesen werden, die Funktion nur zum Testen zu verwenden?Wie verwende ich eine Funktion einer Abhängigkeit nur zum Testen?

In meinem konkreten Beispiel hängt die optionale Funktion von quickcheck ab, die ich nicht notwendigerweise eine obligatorische Abhängigkeit für Benutzer meiner Kiste machen möchte.

Antwort

7

Sie können use a feature für eine development dependency genauso wie Sie für regelmäßige Abhängigkeiten. Im Falle von quickcheck ist seine einzige Funktion collect_impls, so dass Sie diese zu Ihrem Cargo.toml hinzufügen:

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

N. B. Dies wurde innerhalb von quickcheck falsch gemacht. I just fixed it in 0.1.29.

+0

Also in meinem Fall ist Quickcheck selbst eine Dev-Abhängigkeit, sondern auch eine Abhängigkeit von einem Merkmal meiner Abhängigkeit. Insbesondere habe ich [Arbitrary] für die Typen in Nalgebra implementiert (https://github.com/sebcrozet/nalgebra/pull/74). Der Compiler sieht die optionalen Impls jedoch nicht, wenn ich versuche, mich auf das Feature zu verlassen, wie Sie es vorgeschlagen haben. Ich fühle mich, als würde ich hier noch etwas vermissen. – aepsil0n

+0

Macht nichts, mein Problem war, dass ich einen Github Dep auf Quickcheck mit Nalgebras Kisten mischte. Zu subtil ... – aepsil0n

Verwandte Themen