#configuration #runner #toml-config #metadata #run #automated #default

app example-runner-cli

提供以自动方式运行示例的示例运行器

2 个版本

0.1.1 2024年2月10日
0.1.0 2024年2月10日

#149 in 配置

Download history 30/week @ 2024-03-09 56/week @ 2024-03-16 11/week @ 2024-03-23 41/week @ 2024-03-30 20/week @ 2024-04-06 82/week @ 2024-04-13 90/week @ 2024-04-20 1/week @ 2024-04-27 39/week @ 2024-05-04 301/week @ 2024-05-11 91/week @ 2024-05-18 32/week @ 2024-05-25 53/week @ 2024-06-01 2/week @ 2024-06-08 5/week @ 2024-06-15 71/week @ 2024-06-22

131 每月下载量

MIT/Apache

30KB
669

警告:此库仍在开发中。以下提到的某些配置选项可能实际上并不工作。目前示例总是运行,而不管指定的类型如何!

示例运行器

示例配置

每个示例都会在示例的 cargo 配置中获得一个运行器配置,例如。

# Cargo.toml

[[example]]
name = "example_name"

[package.metadata.example_runner.examples]
example_name = "ignore"

配置的指定有两种方式,首先是一个字符串,就像上面那样,或者是一个更详尽的对象配置,如下所示

# Cargo.toml

[[package.metadata.example_runner.examples.example_name]]
type = "explicit"
template = "some_template"
expected_exit_status = "failure"
arguments = [
  "--some-cli-arg"
]

或者,您也可以保留工作空间/包中的默认配置,并仅扩展它们

# Cargo.toml

[package.metadata.example_runner.examples.example_name]
extend_configurations = true

[[package.metadata.example_runner.examples.example_name.configurations]]
type = "explicit"
template = "some_template"
expected_exit_status = "failure"
arguments = [
  "--some-cli-arg"
]

配置选项

  • type: 其中之一 explicit|no_run|ignore。显式创建一个新的配置(默认),no_run 只编译示例,ignore 完全忽略它。
  • template: 要使用的某些模板。模板解析按以下顺序进行:crate,然后是 workspace。
  • arguments: 在运行测试时传递给测试的参数。
  • expected_exit_status: success|failure 之一或某个特定的 i32 状态代码:如果示例没有以该状态代码退出,则失败。默认为 success

运行器配置

可以使用 workspace.example_runner 在工作空间中指定运行器配置,或者在包中使用 example_runner 如下所示

# Cargo.toml for the workspace

# A list of configurations to run for every example by default
[[workspace.metadata.example_runner.default]]
type = "ignore"

# templates to be used within configurations
[workspace.metadata.example_runner.template.some_template]
arguments = [
  "--some-other-cli-arg"
]
# Cargo.toml for the package

[package.metadata.example_runner]
# This is optional and if set adds to workspace configurations instead of replacing them 
extend_workspace_defaults = true

[[package.metadata.example_runner.default]]
type = "ignore"

# templates to be used within configurations - if same name as in workspace it overrides them,
# else all workspace templates are still available.
[package.metadata.example_runner.template.some_template]
arguments = [
  "--some-other-cli-arg"
]

依赖关系

~8–16MB
~198K SLoC