aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/Unit-tests.md
diff options
context:
space:
mode:
authorVirtualTam <virtualtam@flibidi.net>2015-08-04 16:07:13 +0200
committerVirtualTam <virtualtam@flibidi.net>2015-08-04 16:07:13 +0200
commit27cf2e671d1f35bd8c9383d008cd3733fc1c6e0d (patch)
tree4726baf18e7057eac3f9b6bdb5991fe6117814fc /doc/Unit-tests.md
parent96db105e4c0833324f7168edb5673278de8ccd54 (diff)
parent992af0b9d77cb4fbac2c37ef8d5896042d67a2a3 (diff)
downloadShaarli-27cf2e671d1f35bd8c9383d008cd3733fc1c6e0d.tar.gz
Shaarli-27cf2e671d1f35bd8c9383d008cd3733fc1c6e0d.tar.zst
Shaarli-27cf2e671d1f35bd8c9383d008cd3733fc1c6e0d.zip
Merge pull request #294 from virtualtam/doc/update
Doc: sync from Wiki, generate HTML
Diffstat (limited to 'doc/Unit-tests.md')
-rw-r--r--doc/Unit-tests.md128
1 files changed, 128 insertions, 0 deletions
diff --git a/doc/Unit-tests.md b/doc/Unit-tests.md
new file mode 100644
index 00000000..f2888780
--- /dev/null
+++ b/doc/Unit-tests.md
@@ -0,0 +1,128 @@
1#Unit tests
2
3### Setup your environment for tests
4The framework used is [PHPUnit](https://phpunit.de/); it can be installed with [Composer](https://getcomposer.org/), which is a dependency management tool.[](.html)
5
6Regarding Composer, you can either use:
7* a system-wide version, e.g. installed through your distro's package manager
8* a local version, downloadable [here](https://getcomposer.org/download/)[](.html)
9
10#### Sample usage
11```bash
12# system-wide version
13$ composer install
14$ composer update
15
16# local version
17$ php composer.phar self-update
18$ php composer.phar install
19$ php composer.phar update
20```
21
22#### Install Shaarli dev dependencies
23```bash
24$ cd /path/to/shaarli
25$ composer update
26```
27
28#### Install and enable Xdebug to generate PHPUnit coverage reports
29For Debian-based distros:
30```bash
31$ aptitude install php5-xdebug
32```
33For ArchLinux:
34```bash
35$ pacman -S xdebug
36```
37
38Then add the following line to `/etc/php/php.ini`:
39```ini
40zend_extension=xdebug.so
41```
42
43#### Run unit tests
44Successful test suite:
45```bash
46$ make test
47
48-------
49PHPUNIT
50-------
51PHPUnit 4.6.9 by Sebastian Bergmann and contributors.
52
53Configuration read from /home/virtualtam/public_html/shaarli/phpunit.xml
54
55....................................
56
57Time: 759 ms, Memory: 8.25Mb
58
59OK (36 tests, 65 assertions)
60```
61
62Test suite with failures and errors:
63```bash
64$ make test
65-------
66PHPUNIT
67-------
68PHPUnit 4.6.9 by Sebastian Bergmann and contributors.
69
70Configuration read from /home/virtualtam/public_html/shaarli/phpunit.xml
71
72E..FF...............................
73
74Time: 802 ms, Memory: 8.25Mb
75
76There was 1 error:
77
781) LinkDBTest::testConstructLoggedIn
79Missing argument 2 for LinkDB::__construct(), called in /home/virtualtam/public_html/shaarli/tests/Link\
80DBTest.php on line 79 and defined
81
82/home/virtualtam/public_html/shaarli/application/LinkDB.php:58
83/home/virtualtam/public_html/shaarli/tests/LinkDBTest.php:79
84
85--
86
87There were 2 failures:
88
891) LinkDBTest::testCheckDBNew
90Failed asserting that two strings are equal.
91--- Expected
92+++ Actual
93@@ @@
94-'e3edea8ea7bb50be4bcb404df53fbb4546a7156e'
95+'85eab0c610d4f68025f6ed6e6b6b5fabd4b55834'
96
97/home/virtualtam/public_html/shaarli/tests/LinkDBTest.php:121
98
992) LinkDBTest::testCheckDBLoad
100Failed asserting that two strings are equal.
101--- Expected
102+++ Actual
103@@ @@
104-'e3edea8ea7bb50be4bcb404df53fbb4546a7156e'
105+'85eab0c610d4f68025f6ed6e6b6b5fabd4b55834'
106
107/home/virtualtam/public_html/shaarli/tests/LinkDBTest.php:133
108
109FAILURES!
110Tests: 36, Assertions: 63, Errors: 1, Failures: 2.
111```
112
113#### Test results and coverage
114By default, PHPUnit will run all suitable tests found under the `tests` directory.
115
116Each test has 3 possible outcomes:
117* `.` - success
118* `F` - failure: the test was run but its results are invalid
119 * the code does not behave as expected
120 * dependencies to external elements: globals, session, cache...
121* `E` - error: something went wrong and the tested code has crashed
122 * typos in the code, or in the test code
123 * dependencies to missing external elements
124
125If Xdebug has been installed and activated, two coverage reports will be generated:
126* a summary in the console
127* a detailed HTML report with metrics for tested code
128 * to open it in a web browser: `firefox coverage/index.html &`