/usr/share/doc/python-pytest/html/nose.html is in python-pytest-doc 3.3.2-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Running tests written for nose — pytest documentation</title>
<link rel="stylesheet" href="_static/flasky.css" type="text/css" />
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: './',
VERSION: '3.3',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<link rel="shortcut icon" href="_static/pytest1favi.ico"/>
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="classic xunit-style setup" href="xunit_setup.html" />
<link rel="prev" title="unittest.TestCase Support" href="unittest.html" />
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9">
</head>
<body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="xunit_setup.html" title="classic xunit-style setup"
accesskey="N">next</a></li>
<li class="right" >
<a href="unittest.html" title="unittest.TestCase Support"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="contents.html">pytest-3.3</a> »</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="running-tests-written-for-nose">
<span id="noseintegration"></span><h1>Running tests written for nose<a class="headerlink" href="#running-tests-written-for-nose" title="Permalink to this headline">¶</a></h1>
<p><code class="docutils literal"><span class="pre">pytest</span></code> has basic support for running tests written for <a class="reference external" href="https://nose.readthedocs.io/en/latest/">nose</a>.</p>
<div class="section" id="usage">
<span id="nosestyle"></span><h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline">¶</a></h2>
<p>After <a class="reference internal" href="getting-started.html#installation"><span class="std std-ref">Installation</span></a> type:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">python</span> <span class="n">setup</span><span class="o">.</span><span class="n">py</span> <span class="n">develop</span> <span class="c1"># make sure tests can import our package</span>
<span class="n">pytest</span> <span class="c1"># instead of 'nosetests'</span>
</pre></div>
</div>
<p>and you should be able to run your nose style tests and
make use of pytest's capabilities.</p>
</div>
<div class="section" id="supported-nose-idioms">
<h2>Supported nose Idioms<a class="headerlink" href="#supported-nose-idioms" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>setup and teardown at module/class/method level</li>
<li>SkipTest exceptions and markers</li>
<li>setup/teardown decorators</li>
<li><code class="docutils literal"><span class="pre">yield</span></code>-based tests and their setup (considered deprecated as of pytest 3.0)</li>
<li><code class="docutils literal"><span class="pre">__test__</span></code> attribute on modules/classes/functions</li>
<li>general usage of nose utilities</li>
</ul>
</div>
<div class="section" id="unsupported-idioms-known-issues">
<h2>Unsupported idioms / known issues<a class="headerlink" href="#unsupported-idioms-known-issues" title="Permalink to this headline">¶</a></h2>
<ul>
<li><p class="first">unittest-style <code class="docutils literal"><span class="pre">setUp,</span> <span class="pre">tearDown,</span> <span class="pre">setUpClass,</span> <span class="pre">tearDownClass</span></code>
are recognized only on <code class="docutils literal"><span class="pre">unittest.TestCase</span></code> classes but not
on plain classes. <code class="docutils literal"><span class="pre">nose</span></code> supports these methods also on plain
classes but pytest deliberately does not. As nose and pytest already
both support <code class="docutils literal"><span class="pre">setup_class,</span> <span class="pre">teardown_class,</span> <span class="pre">setup_method,</span> <span class="pre">teardown_method</span></code>
it doesn't seem useful to duplicate the unittest-API like nose does.
If you however rather think pytest should support the unittest-spelling on
plain classes please post <a class="reference external" href="https://github.com/pytest-dev/pytest/issues/377/">to this issue</a>.</p>
</li>
<li><p class="first">nose imports test modules with the same import path (e.g.
<code class="docutils literal"><span class="pre">tests.test_mod</span></code>) but different file system paths
(e.g. <code class="docutils literal"><span class="pre">tests/test_mode.py</span></code> and <code class="docutils literal"><span class="pre">other/tests/test_mode.py</span></code>)
by extending sys.path/import semantics. pytest does not do that
but there is discussion in <a class="reference external" href="https://github.com/pytest-dev/pytest/issues/268">#268</a> for adding some support. Note that
<a class="reference external" href="https://nose2.readthedocs.io/en/latest/differences.html#test-discovery-and-loading">nose2 choose to avoid this sys.path/import hackery</a>.</p>
<p>If you place a conftest.py file in the root directory of your project
(as determined by pytest) pytest will run tests "nose style" against
the code below that directory by adding it to your <code class="docutils literal"><span class="pre">sys.path</span></code> instead of
running against your installed code.</p>
<p>You may find yourself wanting to do this if you ran <code class="docutils literal"><span class="pre">python</span> <span class="pre">setup.py</span> <span class="pre">install</span></code>
to set up your project, as opposed to <code class="docutils literal"><span class="pre">python</span> <span class="pre">setup.py</span> <span class="pre">develop</span></code> or any of
the package manager equivalents. Installing with develop in a
virtual environment like Tox is recommended over this pattern.</p>
</li>
<li><p class="first">nose-style doctests are not collected and executed correctly,
also doctest fixtures don't work.</p>
</li>
<li><p class="first">no nose-configuration is recognized.</p>
</li>
<li><p class="first"><code class="docutils literal"><span class="pre">yield</span></code>-based methods don't support <code class="docutils literal"><span class="pre">setup</span></code> properly because
the <code class="docutils literal"><span class="pre">setup</span></code> method is always called in the same class instance.
There are no plans to fix this currently because <code class="docutils literal"><span class="pre">yield</span></code>-tests
are deprecated in pytest 3.0, with <code class="docutils literal"><span class="pre">pytest.mark.parametrize</span></code>
being the recommended alternative.</p>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="contents.html">
<img class="logo" src="_static/pytest1.png" alt="Logo"/>
</a></p><h3><a href="contents.html">Table Of Contents</a></h3>
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="contents.html">Contents</a></li>
<li><a href="getting-started.html">Install</a></li>
<li><a href="example/index.html">Examples</a></li>
<li><a href="customize.html">Customize</a></li>
<li><a href="contact.html">Contact</a></li>
<li><a href="talks.html">Talks/Posts</a></li>
<li><a href="changelog.html">Changelog</a></li>
<li><a href="backwards-compatibility.html">Backwards Compatibility</a></li>
<li><a href="license.html">License</a></li>
</ul>
<hr>
<ul>
<li><a class="reference internal" href="#">Running tests written for nose</a><ul>
<li><a class="reference internal" href="#usage">Usage</a></li>
<li><a class="reference internal" href="#supported-nose-idioms">Supported nose Idioms</a></li>
<li><a class="reference internal" href="#unsupported-idioms-known-issues">Unsupported idioms / known issues</a></li>
</ul>
</li>
</ul>
<h3>Related Topics</h3>
<ul>
<li><a href="contents.html">Documentation overview</a><ul>
<li>Previous: <a href="unittest.html" title="previous chapter">unittest.TestCase Support</a></li>
<li>Next: <a href="xunit_setup.html" title="next chapter">classic xunit-style setup</a></li>
</ul></li>
</ul><h3>Useful Links</h3>
<ul>
<li><a href="index.html">The pytest Website</a></li>
<li><a href="contributing.html">Contribution Guide</a></li>
<li><a href="https://pypi.python.org/pypi/pytest">pytest @ PyPI</a></li>
<li><a href="https://github.com/pytest-dev/pytest/">pytest @ GitHub</a></li>
<li><a href="http://plugincompat.herokuapp.com/">3rd party plugins</a></li>
<li><a href="https://github.com/pytest-dev/pytest/issues">Issue Tracker</a></li>
<li><a href="https://media.readthedocs.org/pdf/pytest/latest/pytest.pdf">PDF Documentation</a>
</ul>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<div><input type="text" name="q" /></div>
<div><input type="submit" value="Go" /></div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
© Copyright 2018, holger krekel and pytest-dev team.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a>.
</div>
</body>
</html>
|