Как собрать примеры на Rust без запуска

Есть ли способ создавать примеры Rust без их запуска? В частности, для тестирования успешной сборки примеров с использованием Travis CI.


person Ross Muir    schedule 30.04.2015    source источник
comment
Не могли бы вы немного пояснить второе предложение? cargo build просто создает пример на Rust. cargo test построит и проверит груз. Только cargo run <name> будет фактически запускать пример?   -  person Daniel Fath    schedule 30.04.2015
comment
@DanielFath Я хочу проверить, что все примеры действительно создаются без их запуска - cargo build выполняется успешно, но когда вы смотрите в каталог ...target/debug/examples, ничего не существует, но если использовать cargo run --example <name>, пример создается в этом каталоге?   -  person Ross Muir    schedule 30.04.2015
comment
Почему это так важно? Чего вы пытаетесь достичь? Если ваш Travis CI запускает cargo test cargo build, он пройдет, только если оба успешно построены.   -  person Daniel Fath    schedule 30.04.2015
comment
вы пробовали cargo test examples? Cargo может запускать определенные тесты и пропускать все остальные, если вы передаете имя. Возможно, это тоже работает для примеров, если у вас нет тестов с именем examples   -  person oli_obk    schedule 30.04.2015


Ответы (3)


cargo test автоматически создает примеры (но не запускает их). Я считаю, что он делает это первым, до основных участников тестирования, но вы можете проверить с cargo test -v.

person huon    schedule 30.04.2015
comment
Кажется, что ничего не построено после запуска этого в каталоге ...target/debug/examples? - person Ross Muir; 30.04.2015
comment
Это все еще нужно carbo build --example <blah> - person Jorge Israel Peña; 30.04.2015
comment
@ JorgeIsraelPeña Я смотрю последний Nightly, и это дает мне Unknown flag: '--example' Usage: cargo build [options] - person Ross Muir; 30.04.2015
comment
@RossMuir мой комментарий был направлен на huon. В настоящее время нет возможности делать то, что вы хотите, кроме того, что предлагал huon, что приводит к запуску тестов. Я хочу сказать, что нам нужно что-то вроде cargo build --example <blah> - person Jorge Israel Peña; 30.04.2015
comment
@RossMuir, хм, я запуталась. Я только что запустил cargo clean && cargo test -v в одном из моих собственных проектов, и на выходе было Running `rustc examples/...` строк (т. Е. Построение примеров), а target/debug/examples/ содержал все двоичные файлы, которые я ожидал. Не могли бы вы уточнить? - person huon; 01.05.2015
comment
@ huon-dbaupp спасибо за вашу помощь. Я установил test = false для примеров в cargo.toml файле - установка этого значения в true создает примеры с cargo test - person Ross Muir; 01.05.2015
comment
@RossMuir, отлично! (Я считаю, что test = true является значением по умолчанию, кстати, поэтому вы, вероятно, можете полностью его опустить.) - person huon; 01.05.2015

Я использую следующий код для запуска с Трэвисом

language: rust
rust:
  - stable
  - beta
script:
  - cargo build --verbose --all
  - cargo test --verbose --all
person Kevin Martins    schedule 04.04.2019

cargo test приводит примеры.

Чтобы построить их, я делаю следующее:

for i in examples/*; do cargo build --target=x86_64-pc-windows-gnu --verbose --example $(basename $i .rs); done

Cargo issue # 192 касается запроса функции для чего-то похожего.

person rofrol    schedule 22.08.2016