2 个版本
0.1.1 | 2023年9月4日 |
---|---|
0.1.0 | 2023年9月2日 |
#18 in #stage
8KB
78 代码行数(不包括注释)
Tesuto
Tesuto 是一个极简且轻量级的测试工具。Tesuto 设计得易于设置,尽可能快。Tesuto 允许开发者专注于解决部署问题。
安装
从版本中安装
- 转到版本部分,选择您要安装的版本。
- 下载存档并解压。
- 将可执行文件放置在环境变量
PATH
中存在的位置。
如果无法运行可执行文件且出现错误
permission denied
,请运行sudo chmod +x <path_to_tesuto>
以使其可运行。
从 crates.io 安装
- 下载
rustup
并按照说明进行安装。 - 运行
cargo install --locked tesuto
并等待编译完成。 - Tesuto 已准备就绪,可使用。
从源代码构建
- 下载
rustup
并按照说明进行安装。 - 克隆此仓库并进入目录。
- 运行
git checkout latest
以使用最新版本的源代码,或运行git checkout main
以使用不稳定版本。 - 您可以使用
cargo build
命令构建带调试信息的可执行文件,或使用cargo build --releases
命令构建优化版本。
配置
生成新项目
安装后,打开终端并进入您要使用 Tesuto 的项目所在的目录。接下来,您需要创建一个新的项目文件
tesuto new
结构
Tesuto 会生成默认项目并将其保存为 tesuto.yml
。它看起来像这样
name: TesutoProject
stages:
hello:
before_script: []
script:
- echo "Hello World!"
variables: {}
quite: false
您有两个选项:name
和 stages
。 name
是您项目的名称。 stages
是您将编写您项目每个阶段的区域。
您可以使用 tesuto list
获取项目中的阶段列表。
阶段结构
让我们看看 hello
阶段的选项。
before_script
- 在主脚本执行之前将要执行的命令。您可以将其留空。script
- 此阶段的命令。它不能为空。variables
- 每个脚本的环境变量(包括before_script
)。quite
- 显示输出或不显示。默认值为false
- 显示所有输出。
配置新阶段
使用命令 add
并传递名称以创建具有特定名称的新阶段。例如,让我们创建一个名为 spam
的新阶段。
tesuto add spam
现在我们在项目中有一个新阶段。让我们向阶段添加一个新命令。
为此,让我们编辑 script
选项。在 YAML 中,要向数组中添加新字符串,我们使用 -
前缀。让我们再次添加 echo
,但现在将打印 "Hello again!"
spam:
before_script: []
script:
- echo "Hello World!"
# New command in stage.
- echo "Hello again!"
variables: {}
quite: false
我们还可以尝试在 variables
选项中添加环境变量。变量的语法
VARIABLE_NAME: "variable value"
让我们添加一个名为 HELLO
的变量,其值为 Hello
,并通过最后的 echo
命令打印它。
spam:
before_script: []
script:
- echo "Hello World!"
# We are adding $ sign beacuse it's an environment variable.
- echo "$HELLO again!"
variables:
# New variable
HELLO: "Hello"
quite: false
但我们为什么没有添加 -
前缀?因为它不是一个数组。它是一个选项。
我们还可以使用 quite
为阶段设置静默模式。我想它的语法对您来说看起来很相似。
运行项目
要运行项目,请使用 run
命令。
tesuto run
Tesuto 会自动给出信号,如果有错误发生。
此外,您可以使用 run-stage
命令运行特定阶段。
tesuto run-stage hello
项目布局
├─ imgs/ Images for README.
├─ target/ Build directory
├─ tesuto/ App source code.
└─ tesuto_project/ Library that contains project structure for Tesuto.
依赖项
~2–2.7MB
~58K SLoC