41 lines
1.5 KiB
Markdown
41 lines
1.5 KiB
Markdown
# Kube OpenAPI Integration Tests
|
|
|
|
## Running the integration tests
|
|
|
|
Within the current directory:
|
|
|
|
```bash
|
|
$ go test -v .
|
|
```
|
|
|
|
## Generating the golden Swagger definition file and API rule violation report
|
|
|
|
First, run the generator to create `openapi_generated.go` file which specifies
|
|
the `OpenAPIDefinition` for each type, and generate the golden API rule
|
|
violation report file . Note that if you do not pass a report
|
|
filename (`./testdata/golden.report` in the command below) to let the generator
|
|
to print API rule violations to the file, the generator will return error to stderr
|
|
on API rule violations.
|
|
|
|
```bash
|
|
$ go run ../../cmd/openapi-gen/openapi-gen.go -i "./testdata/listtype,./testdata/dummytype" -o pkg -p generated -O openapi_generated -r ./testdata/golden.report
|
|
```
|
|
The generated file `pkg/generated/openapi_generated.go` should have been created.
|
|
|
|
Next, run the OpenAPI builder to create the Swagger file which includes
|
|
the definitions. The output file named `golden.json` will be output in
|
|
the current directory.
|
|
|
|
```bash
|
|
$ go run builder/main.go testdata/golden.json
|
|
```
|
|
|
|
After the golden spec is generated, please clean up the generated file
|
|
`pkg/generated/openapi_generated.go` before you commit. It's an intermediate product that doesn't need to be updated in kube-openapi repository. The checked-in file is kept minimum to make sure that `test/integration/builder` compiles. Please run:
|
|
|
|
```base
|
|
$ git checkout pkg/generated/openapi_generated.go
|
|
```
|
|
|
|
to discard any local change.
|