Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/buildkite/test-collector-ruby
Buildkite Test Analytics collector for Ruby test frameworks
https://github.com/buildkite/test-collector-ruby
buildkite-test-analytics minitest rspec ruby
Last synced: about 21 hours ago
JSON representation
Buildkite Test Analytics collector for Ruby test frameworks
- Host: GitHub
- URL: https://github.com/buildkite/test-collector-ruby
- Owner: buildkite
- License: mit
- Created: 2021-01-29T01:42:33.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-16T20:36:34.000Z (about 2 months ago)
- Last Synced: 2025-01-31T20:55:05.232Z (8 days ago)
- Topics: buildkite-test-analytics, minitest, rspec, ruby
- Language: Ruby
- Homepage: http://buildkite.com/test-analytics
- Size: 512 KB
- Stars: 17
- Watchers: 22
- Forks: 25
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Buildkite Collectors for Ruby
**DEPRECATION NOTICE**
Versions prior to 2.1.x are unsupported and will not work after mid-2023. Please upgrade to the latest version.Official [Buildkite Test Engine](https://buildkite.com/platform/test-engine) collectors for Ruby test frameworks β¨
β **Supported test frameworks:** RSpec, Minitest, and [more coming soon](https://github.com/buildkite/test-collector-ruby/issues?q=is%3Aissue+is%3Aopen+label%3A%22test+frameworks%22).
π¦ **Supported CI systems:** Buildkite, GitHub Actions, CircleCI, Codeship, and others via the `BUILDKITE_ANALYTICS_*` environment variables.
## π Installing
### Step 1
[Create a test suite](https://buildkite.com/docs/test-analytics), and copy the API token that it gives you.
Add the [`buildkite-test_collector`](https://rubygems.org/gems/buildkite-test_collector) gem:
```shell
gem install buildkite-test_collector
```Or add this to your Gemfileβs test group:
```ruby
group :test do
gem 'buildkite-test_collector'
end
```### Step 2
#### RSpec
Add the following code to your RSpec setup file:
```ruby
# spec/spec_helper.rb
require 'buildkite/test_collector'
Buildkite::TestCollector.configure(hook: :rspec)
```Run your tests locally:
```shell
BUILDKITE_ANALYTICS_TOKEN=xyz rspec
```#### Minitest
Add the following code to your Minitest setup file:
```ruby
# test/test_helper.rb
require 'buildkite/test_collector'
Buildkite::TestCollector.configure(hook: :minitest)
```Run your tests locally:
```shell
BUILDKITE_ANALYTICS_TOKEN=xyz rake
```### Step 3
Add the `BUILDKITE_ANALYTICS_TOKEN` secret to your CI, push your changes to a branch, and open a pull request π
```bash
git checkout -b add-buildkite-test-engine
git commit -am "Add Buildkite Test Engine"
git push origin add-buildkite-test-engine
```### VCR
If your test suites use [VCR](https://github.com/vcr/vcr) to stub network requests, you'll need to modify the config to allow actual network requests to Test Engine.```
VCR.configure do |c|
c.ignore_hosts "analytics-api.buildkite.com"
end
```## π¨οΈ Annotations
This gem allows adding custom annotations to the span data sent to Buildkite using the [.annotate](https://github.com/buildkite/test-collector-ruby/blob/d9fe11341e4aa470e766febee38124b644572360/lib/buildkite/test_collector.rb#L64) method. For example:
```ruby
Buildkite::TestCollector.annotate("User logged in successfully")
```This is particularly useful for tests that generate a lot of span data such as system/feature tests.
## π·οΈ Tagging duplicate test executions with a prefix/suffix
For builds that execute the same test multiple times - such as when running the same test suite against multiple versions of ruby/rails - it's possible to tag each test execution with a prefix/suffix. This prefix/suffix is displayed for each execution on the test show page to differentiate the build environment. The prefix/suffix is specified using these environment variables:
```
BUILDKITE_ANALYTICS_EXECUTION_NAME_PREFIX
BUILDKITE_ANALYTICS_EXECUTION_NAME_SUFFIX
```## π Roadmap
See the [GitHub 'enhancement' issues](https://github.com/buildkite/test-collector-ruby/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement) for planned features. Pull requests are always welcome, and weβll give you feedback and guidance if you choose to contribute π
## β Developing
After cloning the repository, install the dependencies:
```
bundle
```And run the tests:
```
bundle exec rspec
```Useful resources for developing collectors include the [Buildkite Test Engine docs](https://buildkite.com/docs/test-engine).
See [DESIGN.md](DESIGN.md) for an overview of the design of this gem.
## π©βπ» Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/buildkite/test-collector-ruby
## π Releasing
1. Bump the version in `version.rb` and run `bundle` to update the `Gemfile.lock`.
1. Update the CHANGELOG.md with your new version and a description of your changes.Once your PR is merged to `main`:
1. Git tag the merge commit and push
```
git tag vX.X.X
git push origin vX.X.X
```
1. Visit the [release pipeline](https://buildkite.com/buildkite/test-collector-ruby-release) to unblock it and confirm the new version is pushed to rubygems.org
1. Create a [new release in github](https://github.com/buildkite/test-collector-ruby/releases).## π MIT License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).