Welcome to nose2-testsuite’s documentation!

Note

This project is still under active development and is very far from completion. It is still not ready for use in production.

Getting Started

Introduction

nose2-testsuite is a highly opinionated nose2 plugin that aims to assist you to write a better test suite.

Overview

Writing a good and extensive test suite is not easy.

nose2-testsuite aims to help you write the test suite you always wanted but never had by providing tools that assist you to:

  • Properly write tests for your application.
  • Understand what kind of test you are writing.
  • Understand why a test or a group of tests has failed.
  • Detect test and test coverage regressions and fix them.

Features

TBD

Installing

Requirements

nose2-testsuite requires the following dependencies:

  • nose2

Using pip

Note

Since this project is not released installation via pip is not yet possible.

Install using pip

pip install nose2-testsuite

From source

If you want the bleeding edge clone the repository and run setup.py

git clone https://github.com/thedrow/nose2-testsuite.git
cd nose2-testsuite
python setup.py install

Tutorial

Resources

Support

Mailing Lists

nose2-testsuite has a mailing list for users. You may subscribe to the nose2-testsuite mailing list.

Issue Tracker

nose2-testsuite has an issue tracker where you may report any bugs or other errors you find and submit new feature requests. Please report bugs to the GitHub issues page.

Contributing

nose2-testsuite is currently in the initial development phase and contributions are even more welcome than usual.

Please refer to the roadmap and to the issue tracker for the list of required features.

Required knowledge & experience

In order to contribute to the project in any fashion you must have some knowledge & experience with Git and Github’s forking model.

If you are unfamiliar with Github please read about forks & pull requests before you proceed.

General guidelines about pull requests for this project

  • Before submitting a pull request please ensure your fork is up to date with the upstream.
  • If your contribution was made because an issue was previously opened on the subject please ensure that the last commit message contains “Closes #issue-number”.
  • When submitting the pull request please ensure you are requesting to merge it into the correct version or topic branch. Pull requests against the master branch will not be merged.

Note

Pull requests containing offending commits will not be merged until they will be amended.

Contributing Documentation

The documentation is the most important aspect of any open source project since it serves as the face of the project. It’s the first thing you examine when you review a project.

Therefore, even if you are not a developer and you wish to contribute you can help a lot by improving the documentation.

If you have found a documentation bug, a typo or if you have found better phrasing feel free to fork the project and submit a pull request.

This project uses Sphinx as the documentation tool. If you are unfamiliar with it please refer to the Sphinx documentation first.

Requirements

In order to contribute documentation to nose2-testsuite you must have the following software installed:

Please follow the instructions on the provided links & on this document to install the required software.

Note

If you are running on Windows note that you can use the chocolatey package manager to install Python 2.7.4.

If you are running on your favorite Linux distribution, it might have already provided the required Python version when you installed the distribution.

In order to verify that simply type:

python --version

If not, your package manager might provide it.

Required knowledge & experience
  • In order to edit the documentation you must be familiar with reStructuredText.
Building the documentation

In order to start contributing simply clone the repository or your fork:

# if you have already forked the project use https://github.com/<your-github-username>/nose2-testsuite.git instead
git clone https://github.com/thedrow/nose2-testsuite.git
cd nose2-testsuite

After that install the python dependencies

pip install -r ./requirements/documentation.txt

Note

While not required feel free to setup your own virtualenv and install the required dependencies there.

Build the documentation to ensure everything is working properly.

cd docs/
make html
cd ../

Note

In order to save time you can simply type the following one-liner (assuming your current working directory is the project’s root)

cd docs/ && make html && cd ../

If the build passes and the browser opens you can start editing the documentation immediately.

Guidelines

Note

This section is incomplete. As the documentation evolves more guidelines will be added.

  • All new documentation files must have the *.rst extension.
  • All documentation files must be named using lowercase letters with no spaces, hyphens or underscores.
Submitting a pull request with documentation changes
  • The pull request’s title must be descriptive.
  • The description must summarize all the changes that were made in this pull request.
  • If you fixed your own typo please rebase the commit with the original commit in order to keep clean history. The same rule apply with rephrasing your own words for better clarity.

After you are done editing the documentation and you made sure your contribution follows the guidelines above please submit a pull request.

If you followed the guidelines and the contribution is helpful the pull requests will be merged as soon as possible.

Contributing Code

Requirements

In order to contribute code to nose2-testsuite you must have the following software installed:

Warning

virtualenvwrapper-powershell is not stable enough and currently it does not work with Python 3.x. You can create your virtualenv without virtualenvwrapper-powershell but it is certainly less comfortable.

Due to that the recommended development operating system is Linux.

Please follow the instructions on the provided links & on this document to install the required software.

Release Notes

Versioning Policy

nose2-testsuite conforms to the Semantic Versioning Specification (2.0.0-rc1).

The basic guidelines are:

Patch version numbers (0.0.x) are used for changes that are API compatible, mainly bug fixes. You should be able to upgrade between minor point releases without any other code changes.

Minor version numbers (0.x.0) may include API changes, in line with the deprecation policy. You should read the release notes carefully before upgrading between medium point releases.

Major version numbers (x.0.0) are reserved for substantial project milestones.

For more information please refer to the SemVer Specification.


0.x series

0.1.0

Date: Not released yet

  • Initial release

Roadmap


1.x

1.0
  • Test regression detection.
  • Code coverage regression detection.
  • A daemon that runs only the tests that have changed or that are affected by a change in the code and new tests that have no code coverage data on them.

0.x

0.1.0
  • Categorical test runner that makes a distinction between unit, functional, integration and acceptance testing.
  • Test Doubles for unit & functional tests.
  • Automatic replacement of live objects with Test Doubles for unit & functional tests.
  • Django integration.
  • Test results & test coverage storage.
  • A command line interface.
0.2.0
  • Sharing test results & test coverage in a distributed way.
  • Dependencies detection.
  • A daemon that runs only the tests that have changed.

Indices and tables