diff --git a/docs/testing.md b/docs/testing.md new file mode 100644 index 0000000000000..f6686a24916b4 --- /dev/null +++ b/docs/testing.md @@ -0,0 +1,14 @@ + +## Testing your components + +- `scraperint` is a wrapper around testcontainers and the golang testing api for use with receivers only (at least, today). See docs in [`scraperinttest`](../internal/coreinternal/scraperinttest/README.md) for information on usage. +- Add the `integration` [build constraint](#constraining-build-targets) for longer-running, comprehensive tests. These will be run via github actions when submitting a PR. + +## Constraining build targets + +This project uses golang [build-constraints](https://pkg.go.dev/cmd/go#hdr-Build_constraints) to tag build targets. Guidance on using existing targets + +- `e2e` should be used for end-to-end tests. These are currently manually configured to be run in `.github/workflows` on a per-component basis. +- `integration` should be used for integration tests (able to be run on local hardware but not require any credentials or environmental infrastructure). You can run this with `make integration-test` or `cd componentclass/yourcomponent && make mod-integration-test` +- Restrict builds for varying platforms or processor architectures with their relevant platform names. See [documentation](https://pkg.go.dev/cmd/go#hdr-Build_constraints) on `GOOS` and `GOOARCH` for how these are set. +- Add other build tags as needed, such as has been done for `tools` and `race`. Please document any needed commands here and ensure to get consensus with the otel collector working group before introducing build constraints.