Repository: MassimoCimmino/pygfunction (language: python)

Issue:
Automated testing using tox and continuous integration
This issue is to configure `tox` to automate the execution of tests into fresh Python environments, and to ~~configure github actions for continuous integration~~ re-configure continuous integration.

This issue follows #179.


Discussion / hints:
My only hesitation here is that Github is going to give you a set amount of included minutes, and after that it will be turned off. The goal is for Github to incentivize users to give them money. On private repositories I set up `runner`s and the testing is done on my own machines. For a repository that is open source, someone could place a bug on your machine by opening a pull request. I've considered setting up a `virtual environment` (possibly cross platform) so that on a rare occasion that some hacker does create a PR that it only corrupts the virtual environment. 
This is a very good point. GitHub actions seemed like a good idea but really any tool could do the job.

The Travis ci for pygfunction is currently inactive and that is what really needs to be fixed. I'll update the issue. Thanks.
I do like using GitHub actions because the tests are integrated into the pull request confirmation. I am only familiar with using runners (Github and Gitlab), and not familiar with Travis. Following public release of `ghedt` (currently expected early next year) I plan on setting up a hypervisor (specifically the open source [VirtualBox](https://www.virtualbox.org)) on my PC. With `VirtualBox` I will be able to allocate resources to virtual machines running Windows, Linux and possibly Mac OS. I plan for these virtual machines to have CI/CD runners installed as servers to perform tests on `ghedt` pull requests. Github only limits computing time if it is done on their machines, not if it is done locally with runners. 

Given that I can make what is described above work, I wouldn't mind also hosting the tests for `pygfunction` on those virtual machines. I believe I have adequate computing resources to handle tests for both `ghedt` and `pygfunction`.  We'd need to coordinate some things as that got closer, if you'd be interested in the option described here. 
It seems simple enough to configure github-actions that I am willing to try it out.

We can see how far 3000 min/month goes and reconsider later. With the current pace of development, pygfunction might not need much.

Fix patch:
diff --git a/README.md b/README.md
index 77cd1b10..5e2ccbac 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # pygfunction: A g-function calculator for Python
 
-![Tests](https://github.com/MassimoCimmino/pygfunction/actions/workflows/tests.yml/badge.svg)
+[![Tests](https://github.com/MassimoCimmino/pygfunction/actions/workflows/test.yml/badge.svg)](https://github.com/MassimoCimmino/pygfunction/actions/workflows/test.yml)
 [![DOI](https://zenodo.org/badge/100305705.svg)](https://zenodo.org/badge/latestdoi/100305705)
 
 ## What is *pygfunction*?


Test patch:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 3fa120dc..805b41f4 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -15,7 +15,8 @@ jobs:
     strategy:
       matrix:
         os: [ubuntu-latest]
-        python-version: ['3.7', '3.8', '3.9']
+        python-version: ['3.7', '3.8']
+      fail-fast: false
 
     steps:
     - uses: actions/checkout@v2