2015-05-05 19:58:25 -04:00
|
|
|
Testing
|
|
|
|
=======
|
|
|
|
|
|
|
|
Dotbot testing code uses [Vagrant][vagrant] to run all tests inside a virtual
|
|
|
|
machine to have tests be completely isolated from the host machine. The test
|
|
|
|
driver relies on the [Sahara][sahara] plugin to snapshot and roll back virtual
|
|
|
|
machine state. The tests are deterministic, and each test is run in a virtual
|
|
|
|
machine with fresh state, ensuring that tests that modify system state are
|
|
|
|
easily repeatable.
|
|
|
|
|
2017-05-31 16:19:57 -04:00
|
|
|
Installing the Test environnement
|
|
|
|
---------------------------------
|
|
|
|
|
|
|
|
### Debian-based distributions
|
|
|
|
|
2017-06-12 15:52:53 -04:00
|
|
|
- Install the test requirements
|
2017-05-31 16:19:57 -04:00
|
|
|
|
2017-06-01 14:24:59 -04:00
|
|
|
```shell-session
|
|
|
|
sudo apt install vagrant virtualbox
|
|
|
|
```
|
2017-05-31 16:19:57 -04:00
|
|
|
|
|
|
|
- Install the [Sahara][sahara] Vagrant plugin
|
|
|
|
|
2017-06-01 14:24:59 -04:00
|
|
|
```shell-session
|
|
|
|
vagrant plugin install sahara
|
|
|
|
```
|
2017-05-31 16:19:57 -04:00
|
|
|
|
2017-06-12 15:52:53 -04:00
|
|
|
- Install Dotbot dependencies
|
|
|
|
|
|
|
|
```shell-session
|
|
|
|
git submodule update --init --recursive
|
|
|
|
```
|
|
|
|
|
2015-05-05 19:58:25 -04:00
|
|
|
Running the Tests
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
Before running the tests, the virtual machine must be running. It can be
|
|
|
|
started by running `vagrant up`.
|
|
|
|
|
|
|
|
The test suite can be run by running `./test`. Selected tests can be run by
|
|
|
|
passing paths to the tests as arguments to `./test`.
|
|
|
|
|
2015-10-22 21:46:28 -04:00
|
|
|
Tests can be run with a specific Python version by running `./test --version
|
|
|
|
<version>` - for example, `./test --version 3.4.3`.
|
|
|
|
|
2015-05-05 19:58:25 -04:00
|
|
|
When finished with testing, it is good to shut down the virtual machine by
|
|
|
|
running `vagrant halt`.
|
|
|
|
|
|
|
|
[vagrant]: https://www.vagrantup.com/
|
|
|
|
[sahara]: https://github.com/jedi4ever/sahara
|