2015-01-10 14 views
9

私はオプションの機能を持つ依存関係のある木枠を持っています。現在、この機能はテストには大いに役立ちますが、クレート自体はコード全体に依存しています。貨物にテスト用にのみ機能を使用するよう指示することは可能ですか?依存関係の機能をテストに使用するにはどうすればよいですか?

私の具体的な例では、オプションの機能はquickcheckに依存していますが、これは必ずしも自分のクレートのユーザーに必須の依存関係を作りたいとは限りません。

答えて

7

通常の依存関係と同様にdevelopment dependencyの場合はuse a featureとなります。あなたはCargo.tomlにこれを追加することができるようにquickcheckの場合には、その唯一の機能は、collect_implsです:

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

N.B.これは実際にはquickcheckの内部で間違って行われました。 I just fixed it0.1.29に設定します。

+0

私の場合、quickcheck自体は開発者依存ですが、依存関係の依存関係もあります。特に、私は[nalgebraの型に対して 'Arbitrary'を実装しました](https://github.com/sebcrozet/nalgebra/pull/74)。しかし、私があなたが示唆したように機能に依存しようとすると、コンパイラはオプションのimplsを見ません。私はまだここに何かが欠けているように感じる。 – aepsil0n

+0

気にしないで、私の問題は、クイックチェックにギュタブデプを鳴動のクレートと混ぜていたということでした。あまりにも微妙... – aepsil0n

関連する問題