我正在开发一个框架
,我正在我的Mac
上测试它。最后,我想发布到 crate.io
。我希望它不会因为平台测试不佳而崩溃。是否有一种方法可以在不直接访问这些平台的情况下测试所有或至少大多数当前部署平台?例如,我无权访问 Windows
框。
最佳答案
如果您在 github 上托管您的代码,您可以设置 github 操作以在多个平台上构建和测试您的代码。
我有两组在我的代码上运行的操作。
- 在 Linux 上运行测试、clippy 和检查
rust fmt
仅用于正常的推送和拉取请求 - 另一个在设置发布分支时运行并创建发布、运行测试、构建和上传适用于 Windows、Linux 和 macOS 的发布二进制文件。
您可以看到所有的完整文件 here .
但是结合这些并简化意味着要对每个推送和拉取请求进行测试,您将在 .github/workflows/testing.yml
中创建一个文件,如下所示(未测试):
name: Run Tests
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build_matrix:
name: Run tests for ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
name: [linux, windows, macos]
include:
- name: linux
os: ubuntu-latest
- name: windows
os: windows-latest
- name: macos
os: macos-latest
steps:
- uses: actions/checkout@v1
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
override: true
- name: Test
run: cargo test
关于rust - 使用 Rust,你如何在发布到 crate.io 之前执行平台测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64267917/