Merge pull request #1696 from cosmos/dev/update_contribution_guide_for_testing
contribution guide: Add guidelines for testing
This commit is contained in:
commit
14759ed87f
|
@ -67,6 +67,29 @@ tested by circle using `go test -v -race ./...`. If not, they will need a
|
||||||
`circle.yml`. Ideally, every repo has a `Makefile` that defines `make test` and
|
`circle.yml`. Ideally, every repo has a `Makefile` that defines `make test` and
|
||||||
includes its continuous integration status using a badge in the `README.md`.
|
includes its continuous integration status using a badge in the `README.md`.
|
||||||
|
|
||||||
|
We expect tests to use `require` or `assert` rather than `t.Skip` or `t.Fail`,
|
||||||
|
unless there is a reason to do otherwise.
|
||||||
|
When testing a function under a variety of different inputs, we prefer to use
|
||||||
|
[table driven tests](https://github.com/golang/go/wiki/TableDrivenTests).
|
||||||
|
Table driven test error messages should follow the following format
|
||||||
|
`<desc>, tc #<index>, i #<index>`.
|
||||||
|
`<desc>` is an optional short description of whats failing, `tc` is the
|
||||||
|
index within the table of the testcase that is failing, and `i` is when there
|
||||||
|
is a loop, exactly which iteration of the loop failed.
|
||||||
|
The idea is you should be able to see the
|
||||||
|
error message and figure out exactly what failed.
|
||||||
|
Here is an example check:
|
||||||
|
|
||||||
|
```
|
||||||
|
<some table>
|
||||||
|
for tcIndex, tc := range cases {
|
||||||
|
<some code>
|
||||||
|
for i := 0; i < tc.numTxsToTest; i++ {
|
||||||
|
<some code>
|
||||||
|
require.Equal(t, expectedTx[:32], calculatedTx[:32],
|
||||||
|
"First 32 bytes of the txs differed. tc #%d, i #%d", tcIndex, i)
|
||||||
|
```
|
||||||
|
|
||||||
## Branching Model and Release
|
## Branching Model and Release
|
||||||
|
|
||||||
User-facing repos should adhere to the branching model: http://nvie.com/posts/a-successful-git-branching-model/.
|
User-facing repos should adhere to the branching model: http://nvie.com/posts/a-successful-git-branching-model/.
|
||||||
|
|
Loading…
Reference in New Issue