1
0
Fork 0
mirror of synced 2024-12-22 14:11:07 -05:00
dotbot/test
Kurt McKee 57c7c513b9 Update the Vagrantfile target OS to Ubuntu jammy
This resolves VirtualBox 5.x/6.x Guest Additions incompatibilities
that cause all of the unit tests to fail under VirtualBox 6.1.

Fixes #305
2022-04-10 22:24:19 -05:00
..
tests better test case for exit-on-failure 2021-09-12 19:40:37 -05:00
.editorconfig Add tests for more Python versions 2017-03-06 15:20:27 -05:00
.gitignore Support both [] and ? glob patterns 2021-04-15 23:28:19 -05:00
driver-lib.bash feat: Support recursive globbing with **. 2021-05-27 11:58:55 -05:00
README.md test: fix pyenv configuration in vagrant 2021-06-02 19:47:57 -04:00
test Add --debug flag to test driver 2021-02-25 08:14:34 -05:00
test-lib.bash feat: Support recursive globbing with **. 2021-05-27 11:58:55 -05:00
Vagrantfile Update the Vagrantfile target OS to Ubuntu jammy 2022-04-10 22:24:19 -05:00

Testing

Dotbot testing code uses Vagrant to run all tests inside a virtual machine to have tests be completely isolated from the host machine. Specifically, you will need both:

Install Dotbot dependencies

Ensure you have updated the dotbot submodule dependencies, on the host machine:

git submodule sync --quiet --recursive
git submodule update --init --recursive

Install Vagrant

Debian-based distributions

sudo apt install vagrant virtualbox

macOS

You can download those directly from the above URLs, or via some MacOS package managers. e.g. using HomeBrew:

brew cask install virtualbox
brew cask install vagrant
# optional, adding menu-bar support:
brew cask install vagrant-manager

Running the Tests

Before running the tests, you must start and ssh into the VM:

vagrant up
vagrant ssh

All remaining commands are run inside the VM.

First, you must install a version of Python to test against, using:

pyenv install -s {version}

You can choose any version you like, e.g. 3.8.1. It isn't particularly important to test against all supported versions of Python in the VM, because they will be tested by CI. Once you've installed a specific version of Python, activate it with:

pyenv global {version}

The VM mounts your host's Dotbot directory in /dotbot as read-only, allowing you to make edits on your host machine. Run the entire test suite by:

cd /dotbot/test
./test

Selected tests can be run by passing paths to the tests as arguments, e.g.:

./test tests/create.bash tests/defaults.bash

To debug tests, you can run the test driver with the --debug (or -d short form) flag, e.g. ./test --debug tests/link-if.bash. This will enable printing stdout/stderr.

When finished with testing, it is good to shut down the virtual machine by running vagrant halt.