Как отказаться от запуска doc-теста?

Я пишу библиотеку Rust, и я хочу привести примеры в своей документации, которые

  • скомпилировать как часть запуска cargo test
  • не запускаются.

Возможно ли это?

Я пишу клиентскую библиотеку базы данных, а в примерах используется гипотетический несуществующий сервер базы данных. Таким образом, примеры всегда терпят неудачу при запуске, но важно, чтобы примеры были действительными синтаксически. Отсюда мои требования выше.

Если нет способа делать то, что я хочу, то как отказаться от того, чтобы cargo test запускать определенный тест doc? I.e., имеют cargo run компилировать и запускать некоторые doc-тесты, но полностью игнорировать некоторые другие?

Ответы

Ответ 1

Это описано в Язык программирования ржавчины, в частности глава о документации.

Ваш разделитель кода открытия должен выглядеть так:

/// ```rust,no_run

Из книги:

/// ```rust,no_run
/// loop {
///     println!("Hello, world");
/// }
/// ```

Атрибут no_run будет компилировать ваш код, но не запускать его. Это важные для таких примеров, как "Здесь, как получить веб-страницу", которые вы хотели бы обеспечить компиляцией, но могут быть запущены в тесте которая не имеет доступа к сети.