diff --git a/.github/workflows/python_tests.yml b/.github/workflows/python_tests.yml new file mode 100644 index 0000000..220254e --- /dev/null +++ b/.github/workflows/python_tests.yml @@ -0,0 +1,34 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Python package + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [3.5, 3.6, 3.7, 3.8] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 pytest + python setup.py develop + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Test with pytest + run: | + pytest diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..a3e6f2f --- /dev/null +++ b/pytest.ini @@ -0,0 +1,4 @@ +[pytest] +testpaths = tests +addopts = -v --tb=long +filterwarnings = ignore::DeprecationWarning diff --git a/tests/test_plugin.py b/tests/test_plugin.py new file mode 100644 index 0000000..852c340 --- /dev/null +++ b/tests/test_plugin.py @@ -0,0 +1,27 @@ +import os +import pytest +pytest_plugins = "pytester" + +def test_xfail(testdir): + testdir.makepyfile(""" + def test_one(): + assert True + + def test_two(): + assert False + """) + # Store the failure in expect file + result_before_xfail = testdir.runpytest("-vv", "--update-xfail") + result_before_xfail.assert_outcomes( + passed=1, + failed=1 + ) + + # Execute the tests + result = testdir.runpytest("-vv") + + # Assert that the expected failure should be marked xfail + result.assert_outcomes( + passed=1, + xfailed=1 + )