2017-03-12 13 views
-1

私は、特性実装の周りに#[feature(cfg = "nightly")]のような機能ゲートがあると、rustcの場合でもdoctestはcargo testへの呼び出しによってスキップされることに気付きました。私はcargo test --all-featuresを試しましたが、結果は同じでした。 (ゲートのコメントは、テストが実行されていることを示しています。)これについてはRust Referenceに何も表示されませんでした。フィーチャーゲート実装ではどのようにdocテストを実行しますか?

フィーチャーゲート実装のテストを確実に実行するにはどうすればよいですか?

参考のため、ここに私のRustバージョンがあります。

rustc 1.17.0-nightly (c0b7112ba 2017-03-02) 
binary: rustc 
commit-hash: c0b7112ba246d96f253ba845d91f36c0b7398e42 
commit-date: 2017-03-02 
+1

'#[feature(cfg = nightly)]' => *期待されていない未修飾のリテラルまたは識別子(夜間*)。 [MCVE]を作成する方法を確認し、スタックオーバーフローに関する質問をする際に提供してください。 – Shepmaster

+1

'#[feature(cfg =" nightly ")]' => *未使用属性*と* crate-level属性は内部属性でなければなりません:感嘆符*を付け加えてください。 ** [MCVE] **の作成方法を見直し、スタックオーバーフローに関する質問をする際に提供してください。 – Shepmaster

+0

@Shepmasterこれらの2つのMCVEコメントを自動化ツールで生成していますか?私はあなたの質問にそのようなことは言及していないので、あなたの構築プロセスがパニックになっていないと仮定すると、あなたは夜間の "引用符を意味すると思います。また、含まれているリンクであっても、MCVEは明示的に質問の要件として指定されていません。私たちはすべてここに人間です。私はそれを含めないように判断を下しました、なぜそのコメントで私に打撃を与えるのですか?*毎回MCVEを質問に含めませんでしたか? –

答えて

0

defaultセットの一部ではない機能は、常に明示的にオプトインする必要があります。コマンドラインで引数を渡すか、または依存関係の場合は、[dependencies]セクションに引数を渡すことでそれを行います。

のsrc/lib.rs

/// ``` 
/// assert!(false); 
/// ``` 
#[cfg(feature = "nightly")] 
trait Foo {} 

Cargo.toml

[package] 
name = "wuzzy" 
version = "0.1.0" 
authors = ["An Devloper <[email protected]>"] 

[features] 
nightly = [] 

cargo test --features=nightlyを連発するアサーションを引き起こし、cargo testは、テストを無視します。これはすべて安定した錆に作用します。

$ cargo test --features=nightly 
    Doc-tests wuzzy 

running 1 test 
test src/lib.rs - Foo (line 1) ... FAILED 

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured 

$ cargo test 
    Doc-tests wuzzy 

running 0 tests 

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured 
関連する問題