-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Readme template/running tests #1271
Readme template/running tests #1271
Conversation
config/exercise_readme.go.tmpl
Outdated
## Running the tests | ||
|
||
To run the tests run the command `python -m pytest {{ .Spec.SnakeCaseName }}_test.py` | ||
(`py.test {{ .Spec.SnakeCaseName }}_test.py` for Python 2; `pytest <exercise>_test.py` for Python 3). Or run it with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be {{ .Spec.SnakeCaseName }}
instead of <exercise>_test.py
for Python 3 as well.
config/exercise_readme.go.tmpl
Outdated
|
||
To run the tests run the command `python -m pytest {{ .Spec.SnakeCaseName }}_test.py` | ||
(`py.test {{ .Spec.SnakeCaseName }}_test.py` for Python 2; `pytest <exercise>_test.py` for Python 3). Or run it with | ||
`-v` to be more verbose like this: `pytest {{ .Spec.SnakeCaseName }}_test.py`. Using the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line doesn't make sense. It seems to be explaining the verbose flag, but doesn't use it in the example.
config/exercise_readme.go.tmpl
Outdated
To run this exercises's tests for example, run this command: | ||
``` | ||
python -m pytest {{ .Spec.SnakeCaseName }}_test.py -v | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I find this section a little bit hard to scan. How about something like:
The command to run the tests is:
- (Python 2)
python -m py.test {{ .Spec.SnakeCaseName }}_test.py
- (Python 3)
python -m pytest {{ .Spec.SnakeCaseName }}_test.py
Additional flags are available for pytest:
-v
to get more verbose failure messages-x
to fail at the first failure instead of running all the tests and showing all the failures at once
For example:
python -m pytest -x {{ .Spec.SnakeCaseName }}_test.py
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've rewritten this section for clarity; however, it just occurred to me that while tables are valid markdown, they might be discouraged in this instance to make it easier for users to view the README file in a text editor. If that is the case, I am happy to convert my changes to a similar format to what you have written.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, this needs to be readable in plain text.
exercises/accumulate/README.md
Outdated
| --- | --- | | ||
| 2.7 | `py.test accumulate_test.py` | | ||
| 3.3+ | `pytest accumulate_test.py` | | ||
| 2.7, 3.3+ | `python -m pytest accumulate_test.py` | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This might be obvious to people who use python, but I have no idea from looking at this why 2.7 and 3.3+ both have two different commands. When would I use one or the other? What would I actually type on my command-line (given that I have 2.7) to run the tests?
-add link explaining py.test vs pytest
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fantastic! Cleared up all my confusion, and is delightfully easy to scan.
pig-latin: improve documentation (exercism#1352) add "Running the tests" section to README template (exercism#1271) * add "Running the tests" section to README template * regenerate README files with new template * rewrite Running the tests section for clarity * -switch to a plaintext-readable format -add link explaining py.test vs pytest queen-attack: re-implement according to canonical data 2.1.0 (exercism#1351) * queen-attack: re-implement according to canonical data 2.1.0 * queen-attack: rewrite to pass tests v2.1.0 * queen-attack: remove redundant tests Rm `test_invalid_position_can_attack` since `Queen()` grains: update tests to v1.1.0 (exercism#1357) Fix typo and minor style issues in all READMEs (exercism#1356) * Fix typo and style in README template * Fix `shold` to `should` * Fix minor style issues in `### Common pytest options` * Add blank line after all headers * Regenerate all READMEs * Remove redundant periods in READMEs add `awaiting review` exempt label to stale.yml (exercism#1364) go-counting: adapt tests to canonical data v1.0.0 (exercism#1360) * set correct canonical data version * adapt tests and example solution to canonical data 1.0.0 * use assertSetEqual() consistently sgf-parsing: implement exercise (exercism#1359) * implement sgf-parsing * fix import statement * create entry in config.json * fix __eq__ for Python2 lens-person: forego exercise (exercism#1299) * lens-person: forego exercise `lens-person` is specific to languages with immutable data (i.e. Haskell). This concept does not exist in Python, so the exercise should be foregone. * remove bad comma Implement exercise bank-account (exercism#1260) * Implement exercise bank-account * bank-account: generate README using configlet * bank-account: fix typo and comments pascals-triangle: update tests to canonical-date v1.2.0 (exercism#1164) house: return singleton list for single verse (exercism#1354) * house: return singleton list for single verse RE exercism#1347 ([comment](exercism#1347 (comment))) * house: fix example solution to pass changed tests meetup: remove fail-safe for undefined MeetupDayException (exercism#1345) * meetup: remove fail-safe for undefined MeetupDayException Fixes exercism#1344 * meetup: define MeetupDayException in example solution * meetup: fix example solution to raise correct exception * meetup: fix flake8 violations * meetup: add exception message Curriculum (exercism#1355) * select core exercises and set exercise ordering * add missing obvious topics * make list-ops a core exercise * rational-numbers: increase difficulty * unlocked_by core exercises only (exercism/configlet#61) Ref: exercism/DEPRECATED.v2-feedback#61 (comment) alphametics: mark computationally intensive test as extra-credit (exercism#1358) * alphametics: mark computationally intensive test as extra-credit While this test is canonical, it does not technically add additional coverage. This test serves as a test for efficiency (exercism/problem-specifications#1024 (comment)) of a solution, not completeness. Furthermore, here are the run-times for this exercise from the [latest Travis build]() (at the time of this writing): | Python Version | Run-time (seconds) | | --- | --- | | 2.7 | 3.155 | | 3.3 | 2.461 | | 3.4 | 3.567 | | 3.5 | 7.270 | | 3.6 | 0.774 | Notice that the optimized example solution is only "fast" in 3.6. * alphametics: add to list of exercises allowed to skip tests in CI bank-account: update README using configlet (exercism#1366) go-counting: update README to latest description (exercism#1367) bracket-push: update tests to v1.3.0 (exercism#1369) isbn-verifier: update tests to v2.4.0 (exercism#1373) * Replace test case - "invalid character in isbn" * Add test case with only 9 digits Python "bowling" test issue. (exercism#1372) Fixes /exercism/python/exercism#1371. yacht: implement exercise (exercism#1368) * yacht: implement exercise * yacht: use enumeration of score categories * Use enumeration instead of plain strings to represent categories * Improve func `ns` in example solution crypto-square: Clarify rectangular output requirement in README (exercism#1375) scale-generator: clarify docs. (exercism#1374) * Removed most mentions of terms that were irrelevant ("diminished interval") or undefined ("accidentals"). * Removed irrelevant table * Some light reformatting
* react: re-implement according to canonical data * react: update tests to v1.2.0 * react: correct test method name * react: fix example solution py2-compatibility * `copy()` method to `[:]` * `clear()` method to reassigning an empty list * react: refactor callbacks into pure functions * Merge upstream/master into react-1257 pig-latin: improve documentation (#1352) add "Running the tests" section to README template (#1271) * add "Running the tests" section to README template * regenerate README files with new template * rewrite Running the tests section for clarity * -switch to a plaintext-readable format -add link explaining py.test vs pytest queen-attack: re-implement according to canonical data 2.1.0 (#1351) * queen-attack: re-implement according to canonical data 2.1.0 * queen-attack: rewrite to pass tests v2.1.0 * queen-attack: remove redundant tests Rm `test_invalid_position_can_attack` since `Queen()` grains: update tests to v1.1.0 (#1357) Fix typo and minor style issues in all READMEs (#1356) * Fix typo and style in README template * Fix `shold` to `should` * Fix minor style issues in `### Common pytest options` * Add blank line after all headers * Regenerate all READMEs * Remove redundant periods in READMEs add `awaiting review` exempt label to stale.yml (#1364) go-counting: adapt tests to canonical data v1.0.0 (#1360) * set correct canonical data version * adapt tests and example solution to canonical data 1.0.0 * use assertSetEqual() consistently sgf-parsing: implement exercise (#1359) * implement sgf-parsing * fix import statement * create entry in config.json * fix __eq__ for Python2 lens-person: forego exercise (#1299) * lens-person: forego exercise `lens-person` is specific to languages with immutable data (i.e. Haskell). This concept does not exist in Python, so the exercise should be foregone. * remove bad comma Implement exercise bank-account (#1260) * Implement exercise bank-account * bank-account: generate README using configlet * bank-account: fix typo and comments pascals-triangle: update tests to canonical-date v1.2.0 (#1164) house: return singleton list for single verse (#1354) * house: return singleton list for single verse RE #1347 ([comment](#1347 (comment))) * house: fix example solution to pass changed tests meetup: remove fail-safe for undefined MeetupDayException (#1345) * meetup: remove fail-safe for undefined MeetupDayException Fixes #1344 * meetup: define MeetupDayException in example solution * meetup: fix example solution to raise correct exception * meetup: fix flake8 violations * meetup: add exception message Curriculum (#1355) * select core exercises and set exercise ordering * add missing obvious topics * make list-ops a core exercise * rational-numbers: increase difficulty * unlocked_by core exercises only (exercism/configlet#61) Ref: exercism/DEPRECATED.v2-feedback#61 (comment) alphametics: mark computationally intensive test as extra-credit (#1358) * alphametics: mark computationally intensive test as extra-credit While this test is canonical, it does not technically add additional coverage. This test serves as a test for efficiency (exercism/problem-specifications#1024 (comment)) of a solution, not completeness. Furthermore, here are the run-times for this exercise from the [latest Travis build]() (at the time of this writing): | Python Version | Run-time (seconds) | | --- | --- | | 2.7 | 3.155 | | 3.3 | 2.461 | | 3.4 | 3.567 | | 3.5 | 7.270 | | 3.6 | 0.774 | Notice that the optimized example solution is only "fast" in 3.6. * alphametics: add to list of exercises allowed to skip tests in CI bank-account: update README using configlet (#1366) go-counting: update README to latest description (#1367) bracket-push: update tests to v1.3.0 (#1369) isbn-verifier: update tests to v2.4.0 (#1373) * Replace test case - "invalid character in isbn" * Add test case with only 9 digits Python "bowling" test issue. (#1372) Fixes /exercism/python/#1371. yacht: implement exercise (#1368) * yacht: implement exercise * yacht: use enumeration of score categories * Use enumeration instead of plain strings to represent categories * Improve func `ns` in example solution crypto-square: Clarify rectangular output requirement in README (#1375) scale-generator: clarify docs. (#1374) * Removed most mentions of terms that were irrelevant ("diminished interval") or undefined ("accidentals"). * Removed irrelevant table * Some light reformatting * react: update tests to v2.0.0
Add "Running the tests" section to README template and regenerate README files.
Closes #533 (redundant)