Rust における Cargo 依存関係管理

RustRustBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、開発依存関係の概念について説明します。開発依存関係は、Cargo.toml ファイルの [dev-dependencies] セクションに追加され、テスト、サンプル、またはベンチマークに使用されます。開発依存関係の例として、pretty_assertions があります。これは、assert_eq!assert_ne! などの標準マクロを拡張して、カラー付きの差分を提供します。

注: 実験でファイル名が指定されていない場合、好きなファイル名を使用できます。たとえば、main.rs を使用して、rustc main.rs &&./main でコンパイルして実行することができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/DataTypesGroup(["Data Types"]) rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/AdvancedTopicsGroup(["Advanced Topics"]) rust/DataTypesGroup -.-> rust/integer_types("Integer Types") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") rust/AdvancedTopicsGroup -.-> rust/operator_overloading("Traits for Operator Overloading") subgraph Lab Skills rust/integer_types -.-> lab-99284{{"Rust における Cargo 依存関係管理"}} rust/function_syntax -.-> lab-99284{{"Rust における Cargo 依存関係管理"}} rust/expressions_statements -.-> lab-99284{{"Rust における Cargo 依存関係管理"}} rust/operator_overloading -.-> lab-99284{{"Rust における Cargo 依存関係管理"}} end

開発依存関係

時々、テスト(またはサンプル、またはベンチマーク)にのみ依存関係が必要な場合があります。このような依存関係は、[dev-dependencies] セクションの Cargo.toml に追加されます。これらの依存関係は、このパッケージに依存する他のパッケージには伝播されません。

そのような例の 1 つは、pretty_assertions です。これは、標準の assert_eq!assert_ne! マクロを拡張して、カラー付きの差分を提供します。
ファイル Cargo.toml:

## 標準のクレートデータは省略
[dev-dependencies]
pretty_assertions = "1"

ファイル src/lib.rs:

pub fn add(a: i32, b: i32) -> i32 {
    a + b
}

#[cfg(test)]
mod tests {
    use super::*;
    use pretty_assertions::assert_eq; // テストのみで使用するクレート。非テストコードでは使用できません。

    #[test]
    fn test_add() {
        assert_eq!(add(2, 3), 5);
    }
}

まとめ

おめでとうございます!あなたは開発依存関係の実験を完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を行ってみることができます。