15

f1 と f2 という 2 つの機能を持つ "dep" という依存関係があるとします。通常クレートをビルドするときは f1 機能で "dep" を使用したいのですが、テスト用にビルドするときは f2 で使用します。dev-dependencies はテストに必要なものであることを知っており、Cargo.toml の次の構造が機能するはずだと考えました。

    [dev-dependencies]
    dep = { version = "1.0.0", features = ["f2"] }
    
    [dependencies]
    dep = { version = "1.0.0", features = ["f1"] }
    

ただし、「f1」で「dep」を取り込むと、コンパイラーは dev-dependencies セクションで同じ依存関係の言及を無視するようです。一方、依存関係を「オプション」にしても、テストで「dep」がまったく取り込まれないため、問題は解決しません。この問題を解決する方法、またはうまく回避する方法についてのアイデアはありますか?

PS: 問題がここで追跡されていることに気付きました: https://github.com/rust-lang/cargo/issues/7916。したがって、現時点では、回答者からの適切な回避策しか期待できませんでした.

4

1 に答える 1