mirror of
https://expo.survex.com/repositories/expoweb/.git/
synced 2024-11-22 23:31:56 +00:00
udated tests documn
This commit is contained in:
parent
d93ec47873
commit
5233b0e797
@ -10,10 +10,15 @@
|
|||||||
<h1>Handbook Troggle - Automated Testing</h1>
|
<h1>Handbook Troggle - Automated Testing</h1>
|
||||||
|
|
||||||
<h2>Troggle Automated Testing</h2>
|
<h2>Troggle Automated Testing</h2>
|
||||||
<p>We have a suite of more than 90 <a href="https://en.wikipedia.org/wiki/Smoke_testing_(software)">smoke tests</a>
|
<p>We have a suite of more than 100 <a href="https://en.wikipedia.org/wiki/Smoke_testing_(software)">smoke tests</a>
|
||||||
which are run manually by troggle programmers like this:
|
which are run manually by troggle programmers like this:
|
||||||
|
<pre><code> troggle$ python3 manage.py test --parallel auto -v 1</code></pre>
|
||||||
|
or, if someone has made a mistake and the tests interfere with each other:
|
||||||
<pre><code> troggle$ python manage.py test -v 1</code></pre>
|
<pre><code> troggle$ python manage.py test -v 1</code></pre>
|
||||||
|
|
||||||
|
<p>Running the tests in parallel works on the server too (without the 'auto' keyword on Django 3.2 though).
|
||||||
|
|
||||||
|
|
||||||
<p>These are 'end to end' tests which very quickly show whether something is badly broken. The tests are for two purposes only:
|
<p>These are 'end to end' tests which very quickly show whether something is badly broken. The tests are for two purposes only:
|
||||||
<ul>
|
<ul>
|
||||||
<li>To check whether anything has broken when we try a new version of python, Django or a Django plugin
|
<li>To check whether anything has broken when we try a new version of python, Django or a Django plugin
|
||||||
@ -49,15 +54,14 @@ No tests are run with the real expo database.
|
|||||||
|
|
||||||
<p>As yet we have no test database set up, so the in-memory database starts entirely empty. However we have 'fixtures' in
|
<p>As yet we have no test database set up, so the in-memory database starts entirely empty. However we have 'fixtures' in
|
||||||
<var>troggle/core/fixtures/ </var>
|
<var>troggle/core/fixtures/ </var>
|
||||||
which are JSON files containing dummy data which is read in before a few of the tests. (Though current wisdom is that <a href="https://lukeplant.me.uk/blog/posts/test-factory-functions-in-django/">factory methods in the test suite</a> are a superior way of managing tests for very long-term projects like ours.)
|
which are JSON files containing dummy data which is read in before a few of the tests.
|
||||||
|
|
||||||
<h4>Automated testing on the server</h4>
|
<p>Current wisdom is that <a href="https://lukeplant.me.uk/blog/posts/test-factory-functions-in-django/">factory methods in the test suite</a> are a superior way of managing tests for very long-term projects like ours. We have one of these <var>make_person()</var> in <var>core/TESTS/test_parsers.py</var> which we use to create 4 people, which are then used when testing the import parser for a fragment of an invented logbook in <var>test_logbook_parse()</var>.
|
||||||
<p>Something is stopping the test suite running on the server. We haven't fixed this yet.
|
|
||||||
|
|
||||||
<h4>How you can help</h4>
|
<h4>How you can help</h4>
|
||||||
<p>We could do with a lot more unit tests which test small, specific things. If we have a lot of these it will make future re-engineering of troggle easier, as we can more confidently tackle big re-writes and still be sure that nothing is broken.
|
<p>We could do with a lot more unit tests which test small, specific things. If we have a lot of these it will make future re-engineering of troggle easier, as we can more confidently tackle big re-writes and still be sure that nothing is broken.
|
||||||
|
|
||||||
<p>We have got only one test which checks that the <a href="trogimport.html">input parsers</a> work. We only have a test for <var>parsers/logbooks</var>.
|
<p>We have got only one test which checks that the <a href="trogimport.html">input parsers</a> work. We need tests for parsing survex files and for reading the JSON files for the wallets. We could laos do with a directory browser/parser test for the survey scan files and for the HTML fragment file which make up the cave descriptions.
|
||||||
|
|
||||||
<p>Have a look at Wikpedia's <a href="https://en.wikipedia.org/wiki/Software_testing">review of types of software testing</a> for ideas.
|
<p>Have a look at Wikpedia's <a href="https://en.wikipedia.org/wiki/Software_testing">review of types of software testing</a> for ideas.
|
||||||
<p>If you want to write some tests and are having trouble finding something which is untested, have a look at the list of
|
<p>If you want to write some tests and are having trouble finding something which is untested, have a look at the list of
|
||||||
|
Loading…
Reference in New Issue
Block a user