Add a vet/test runner script with coverage on by default
This commit is contained in:
parent
63ed8b0bde
commit
b9f33fbe6d
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.coverprofile
|
@ -1,4 +1,5 @@
|
|||||||
language: go
|
language: go
|
||||||
|
|
||||||
sudo: false
|
sudo: false
|
||||||
|
|
||||||
go:
|
go:
|
||||||
@ -8,16 +9,14 @@ go:
|
|||||||
- 1.4
|
- 1.4
|
||||||
- 1.5.4
|
- 1.5.4
|
||||||
- 1.6.2
|
- 1.6.2
|
||||||
- tip
|
- master
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
allow_failures:
|
allow_failures:
|
||||||
- go: tip
|
- go: master
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- go get github.com/meatballhat/gfmxr/...
|
- go get github.com/meatballhat/gfmxr/...
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- go vet ./...
|
- ./runtests
|
||||||
- go test -v ./...
|
|
||||||
- gfmxr -c $(grep -c 'package main' README.md) -s README.md
|
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
- `context.GlobalBoolT` was added as an analogue to `context.GlobalBool`
|
- `context.GlobalBoolT` was added as an analogue to `context.GlobalBool`
|
||||||
- Support for hiding commands by setting `Hidden: true` -- this will hide the
|
- Support for hiding commands by setting `Hidden: true` -- this will hide the
|
||||||
commands in help output
|
commands in help output
|
||||||
|
- `./runtests` test runner with coverage tracking by default
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
- `Float64Flag`, `IntFlag`, and `DurationFlag` default values are no longer
|
- `Float64Flag`, `IntFlag`, and `DurationFlag` default values are no longer
|
||||||
|
70
runtests
Executable file
70
runtests
Executable file
@ -0,0 +1,70 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import tempfile
|
||||||
|
|
||||||
|
from subprocess import check_call
|
||||||
|
|
||||||
|
|
||||||
|
PACKAGE_NAME = os.environ.get(
|
||||||
|
'CLI_PACKAGE_NAME', 'github.com/codegangsta/cli'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
_run('go vet ./...'.split())
|
||||||
|
|
||||||
|
coverprofiles = []
|
||||||
|
for subpackage in ['', 'altsrc']:
|
||||||
|
coverprofile = 'cli.coverprofile'
|
||||||
|
if subpackage != '':
|
||||||
|
coverprofile = '{}.coverprofile'.format(subpackage)
|
||||||
|
|
||||||
|
coverprofiles.append(coverprofile)
|
||||||
|
|
||||||
|
_run('go test -v'.split() + [
|
||||||
|
'-coverprofile={}'.format(coverprofile),
|
||||||
|
'{}/{}'.format(PACKAGE_NAME, subpackage)
|
||||||
|
])
|
||||||
|
|
||||||
|
combined = _combine_coverprofiles(coverprofiles)
|
||||||
|
_run('go tool cover -func={}'.format(combined.name).split())
|
||||||
|
combined.close()
|
||||||
|
|
||||||
|
_run(['gfmxr', '-c', str(_gfmxr_count()), '-s', 'README.md'])
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def _run(command):
|
||||||
|
print('runtests: {}'.format(' '.join(command)), file=sys.stderr)
|
||||||
|
check_call(command)
|
||||||
|
|
||||||
|
|
||||||
|
def _gfmxr_count():
|
||||||
|
with open('README.md') as infile:
|
||||||
|
lines = infile.read().splitlines()
|
||||||
|
return len(filter(_is_go_runnable, lines))
|
||||||
|
|
||||||
|
|
||||||
|
def _is_go_runnable(line):
|
||||||
|
return line.startswith('package main')
|
||||||
|
|
||||||
|
|
||||||
|
def _combine_coverprofiles(coverprofiles):
|
||||||
|
combined = tempfile.NamedTemporaryFile(suffix='.coverprofile')
|
||||||
|
combined.write('mode: set\n')
|
||||||
|
|
||||||
|
for coverprofile in coverprofiles:
|
||||||
|
with open(coverprofile, 'r') as infile:
|
||||||
|
for line in infile.readlines():
|
||||||
|
if not line.startswith('mode: '):
|
||||||
|
combined.write(line)
|
||||||
|
|
||||||
|
combined.flush()
|
||||||
|
return combined
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.exit(main())
|
Loading…
x
Reference in New Issue
Block a user