示例#1
0
文件: main.py 项目: nikolas/nose2
 def createTests(self):
     """Create top-level test suite"""
     event = events.CreateTestsEvent(
         self.testLoader, self.testNames, self.module)
     result = self.session.hooks.createTests(event)
     if event.handled:
         self.test = result
     else:
         log.debug("Create tests from %s/%s", self.testNames, self.module)
         self.test = self.testLoader.loadTestsFromNames(
             self.testNames, self.module)
示例#2
0
        def _collector(self, result_):
            ssn, ldr, rnr = self._get_objects()

            ssn.testLoader = ldr
            ssn.loadConfigFiles(
                "unittest.cfg",
                "nose2.cfg",
                "setup.cfg",
                os.path.expanduser("~/.unittest.cfg"),
                os.path.expanduser("~/.nose2.cfg"),
            )
            ssn.setStartDir()
            ssn.prepareSysPath()
            ssn.loadPlugins(PluggableTestProgram.defaultPlugins)

            # TODO: refactor argument parsing to make it possible to feed CLI
            # args to plugins via this path (currently done in
            # PluggableTestProgram)
            # in order to do this, it seems like features in
            # PluggableTestProgram need to be factored out into some source
            # from which both it and this dummy test case can invoke them
            #
            # this is the disabled feature:
            # ssn.hooks.handleArgs(events.CommandLineArgsEvent(...))
            #
            # this means that there may be plugins which don't work under
            # setuptools invocation because they expect to get handleArgs
            # triggered (e.g. older versions of the coverage plugin)

            # FIXME: this is all a great-big DRY violation when compared with
            # PluggableTestProgram

            # create the testsuite, and make sure the createTests event gets
            # triggered, as some plugins expect it
            # just doing `ldr.loadTestsFromNames` works, but leaves some
            # plugins in the lurch
            event = events.CreateTestsEvent(ldr, [], None)
            result = ssn.hooks.createTests(event)
            if event.handled:
                test = event
            else:
                test = ldr.loadTestsFromNames([], None)

            # fire the "createdTestSuite" event for plugins to handle
            # as above, we can get away without this, but some plugins will
            # expect it
            event = events.CreatedTestSuiteEvent(test)
            result = ssn.hooks.createdTestSuite(event)
            if event.handled:
                test = result

            rslt = rnr.run(test)
            return rslt.wasSuccessful()