diff --git a/py/test/session.py b/py/test/session.py index 4bd4d1486..c4ae2f760 100644 --- a/py/test/session.py +++ b/py/test/session.py @@ -60,6 +60,8 @@ class Session(object): for x in self.genitems(ev.result, keywordexpr): yield x notify("collectionreport", ev) + if self.shouldstop: + break def filteritems(self, colitems): """ return items to process (some may be deselected)""" diff --git a/py/test/testing/test_session.py b/py/test/testing/test_session.py index 0a5c4de2d..c2e207355 100644 --- a/py/test/testing/test_session.py +++ b/py/test/testing/test_session.py @@ -213,17 +213,10 @@ class TestNewSession(SessionTests): assert len(colfail) == 1 assert len(colskipped) == 1 - def test_minus_x_import_error(self): - py.test.skip("fails") - o = self.tmpdir - tfile = o.join('test_one.py').write(py.code.Source(""" - xxxx - """)) - tfile2 = o.join('test_two.py').write(py.code.Source(""" - yyyyy - """)) - sorter = self.events_from_cmdline('-x') - finished = sorter.get(event.CollectionReport) + def test_minus_x_import_error(self, testdir): + testdir.makepyfile(test_one="xxxx", test_two="yyyy") + sorter = testdir.inline_run("-x", testdir.tmpdir) + finished = sorter.getnamed("collectionreport") colfail = [x for x in finished if x.failed] assert len(colfail) == 1