当前位置: 首页>>代码示例>>Python>>正文


Python TeamcityServiceMessages.testFinished方法代码示例

本文整理汇总了Python中tcmessages.TeamcityServiceMessages.testFinished方法的典型用法代码示例。如果您正苦于以下问题:Python TeamcityServiceMessages.testFinished方法的具体用法?Python TeamcityServiceMessages.testFinished怎么用?Python TeamcityServiceMessages.testFinished使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在tcmessages.TeamcityServiceMessages的用法示例。


在下文中一共展示了TeamcityServiceMessages.testFinished方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: TeamcityTestListener

# 需要导入模块: from tcmessages import TeamcityServiceMessages [as 别名]
# 或者: from tcmessages.TeamcityServiceMessages import testFinished [as 别名]
class TeamcityTestListener(TestListener):
    def __init__(self):
        self.messages = TeamcityServiceMessages(prepend_linebreak=True)

    def on_test_suite_start(self, test_suite):
        self.messages.testMatrixEntered()
        self.messages.testCount(len(test_suite.test_cases))

    def on_test_suite_finish(self, test_suite):
        pass

    def on_test_class_start(self, test_class):
        self.messages.testSuiteStarted(suiteName=test_class.full_name)

    def on_test_class_finish(self, test_class):
        self.messages.testSuiteFinished(suiteName=test_class.full_name)

    def on_test_group_start(self, test_group):
        if not hasattr(test_group.test_class, "is_group_feature_used") or test_group.test_class.is_group_feature_used:
            self.messages.testSuiteStarted(suiteName=test_group.name)

    def on_test_group_finish(self, test_group):
        if not hasattr(test_group.test_class, "is_group_feature_used") or test_group.test_class.is_group_feature_used:
            self.messages.testSuiteFinished(suiteName=test_group.name)

    def on_test_case_start(self, test_case):
        self.messages.testStarted(testName=test_case.name, location=test_case.location)

    def on_test_case_finish(self, test_case):
        if test_case.status == TestCaseStatus.FAILED:
            self.messages.testFailed(testName=test_case.name)
        elif test_case.status == TestCaseStatus.SKIPPED:
            self.messages.testIgnored(testName=test_case.name)
        self.messages.testFinished(testName=test_case.name, duration=int(test_case.elapsed_time * 1000.0))
开发者ID:KarlGong,项目名称:ptest-pycharm-plugin,代码行数:36,代码来源:ptestrunner.py

示例2: TeamcityTestResult

# 需要导入模块: from tcmessages import TeamcityServiceMessages [as 别名]
# 或者: from tcmessages.TeamcityServiceMessages import testFinished [as 别名]

#.........这里部分代码省略.........
        duration = self.__getDuration(test)
        self.messages.testFailed(
            self.getTestName(test), message="Failure", details=err, expected=first, actual=second, duration=duration
        )

    def addSkip(self, test, reason):
        self.init_suite(test)
        self.current_failed = True
        self.messages.testIgnored(self.getTestName(test), message=reason)

    def _getSuite(self, test):
        try:
            suite = strclass(test.suite)
            suite_location = test.suite.location
            location = test.suite.abs_location
            if hasattr(test, "lineno"):
                location = location + ":" + str(test.lineno)
            else:
                location = location + ":" + str(test.test.lineno)
        except AttributeError:
            import inspect

            try:
                source_file = inspect.getsourcefile(test.__class__)
                if source_file:
                    source_dir_splitted = source_file.split("/")[:-1]
                    source_dir = "/".join(source_dir_splitted) + "/"
                else:
                    source_dir = ""
            except TypeError:
                source_dir = ""

            suite = strclass(test.__class__)
            suite_location = "python_uttestid://" + source_dir + suite
            location = "python_uttestid://" + source_dir + str(test.id())

        return (suite, location, suite_location)

    def startTest(self, test):
        self.current_failed = False
        setattr(test, "startTime", datetime.datetime.now())

    def init_suite(self, test):
        suite, location, suite_location = self._getSuite(test)
        if suite != self.current_suite:
            if self.current_suite:
                self.messages.testSuiteFinished(self.current_suite)
            self.current_suite = suite
            self.messages.testSuiteStarted(self.current_suite, location=suite_location)
        return location

    def stopTest(self, test):
        duration = self.__getDuration(test)
        if not self.subtest_suite:
            if not self.current_failed:
                location = self.init_suite(test)
                self.messages.testStarted(self.getTestName(test), location=location)
                self.messages.testFinished(self.getTestName(test), duration=int(duration))
        else:
            self.messages.testSuiteFinished(self.subtest_suite)
            self.subtest_suite = None

    def __getDuration(self, test):
        start = getattr(test, "startTime", datetime.datetime.now())
        assert isinstance(
            start, datetime.datetime
        ), "You testcase has property named 'startTime' (value {0}). Please, rename it".format(start)
        d = datetime.datetime.now() - start
        duration = d.microseconds / 1000 + d.seconds * 1000 + d.days * 86400000
        return duration

    def addSubTest(self, test, subtest, err):
        location = self.init_suite(test)
        suite_name = self.getTestName(test)  # + " (subTests)"
        if not self.subtest_suite:
            self.subtest_suite = suite_name
            self.messages.testSuiteStarted(self.subtest_suite, location=location)
        else:
            if suite_name != self.subtest_suite:
                self.messages.testSuiteFinished(self.subtest_suite)
                self.subtest_suite = suite_name
                self.messages.testSuiteStarted(self.subtest_suite, location=location)

        name = self.getTestName(subtest, True)
        if err is not None:
            error = self._exc_info_to_string(err, test)
            self.messages.testStarted(name)
            self.messages.testFailed(name, message="Failure", details=error, duration=None)
        else:
            self.messages.testStarted(name)
            self.messages.testFinished(name)

    def endLastSuite(self):
        if self.current_suite:
            self.messages.testSuiteFinished(self.current_suite)
            self.current_suite = None

    def _unescape(self, text):
        # do not use text.decode('string_escape'), it leads to problems with different string encodings given
        return text.replace("\\n", "\n")
开发者ID:ashanco,项目名称:intellij-community,代码行数:104,代码来源:tcunittest.py

示例3: TeamcityPlugin

# 需要导入模块: from tcmessages import TeamcityServiceMessages [as 别名]
# 或者: from tcmessages.TeamcityServiceMessages import testFinished [as 别名]

#.........这里部分代码省略.........

  def _getSuite(self, test):
    if hasattr(test, "suite"):
      suite = strclass(test.suite)
      suite_location = test.suite.location
      location = test.suite.abs_location
      if hasattr(test, "lineno"):
        location = location + ":" + str(test.lineno)
      else:
        location = location + ":" + str(test.test.lineno)
    else:
      suite = strclass(test.__class__)
      suite_location = "python_nosetestid://" + suite
      try:
        from nose.util import func_lineno

        if hasattr(test.test, "descriptor") and test.test.descriptor:
          suite_location = "file://" + self.test_address(
            test.test.descriptor)
          location = suite_location + ":" + str(
            func_lineno(test.test.descriptor))
        else:
          suite_location = "file://" + self.test_address(
            test.test.test)
          location = "file://" + self.test_address(
            test.test.test) + ":" + str(func_lineno(test.test.test))
      except:
        test_id = test.id()
        suite_id = test_id[:test_id.rfind(".")]
        suite_location = "python_nosetestid://" + str(suite_id)
        location = "python_nosetestid://" + str(test_id)
    return (location, suite_location)


  def test_address(self, test):
    if hasattr(test, "address"):
      return test.address()[0]
    t = type(test)
    file = None
    import types, os

    if (t == types.FunctionType or issubclass(t, type) or t == type
        or isclass(test)):
      module = getattr(test, '__module__', None)
      if module is not None:
        m = sys.modules[module]
        file = getattr(m, '__file__', None)
        if file is not None:
          file = os.path.abspath(file)
      if file.endswith("pyc"):
        file = file[:-1]
      return file
    raise TypeError("I don't know what %s is (%s)" % (test, t))


  def getSuiteName(self, test):
    test_name_full = str(test)

    ind_1 = test_name_full.rfind('(')
    if self.is_gen(test) and ind_1 != -1:
      ind = test_name_full[:ind_1].rfind('.')
      if ind != -1:
        return test_name_full[:ind]

    if ind_1 != -1:
      return test_name_full[ind_1 + 1: -1]
    ind = test_name_full.rfind('.')
    if ind != -1:
      return test_name_full[:test_name_full.rfind(".")]
    return test_name_full


  def startTest(self, test):
    location, suite_location = self._getSuite(test)
    suite = self.getSuiteName(test)
    if suite != self.current_suite:
      if self.current_suite:
        self.messages.testSuiteFinished(self.current_suite)
      self.current_suite = suite
      self.messages.testSuiteStarted(self.current_suite,
        location=suite_location)
    setattr(test, "startTime", datetime.datetime.now())
    self.messages.testStarted(self.getTestName(test), location=location)


  def stopTest(self, test):
    duration = self.__getDuration(test)
    self.messages.testFinished(self.getTestName(test),
      duration=int(duration))

  def __getDuration(self, test):
    start = getattr(test, "startTime", datetime.datetime.now())
    d = datetime.datetime.now() - start
    duration = d.microseconds / 1000 + d.seconds * 1000 + d.days * 86400000
    return duration

  def finalize(self, result):
    if self.current_suite:
      self.messages.testSuiteFinished(self.current_suite)
      self.current_suite = None
开发者ID:influencia0406,项目名称:intellij-community,代码行数:104,代码来源:nose_utils.py

示例4: TeamcityTestResult

# 需要导入模块: from tcmessages import TeamcityServiceMessages [as 别名]
# 或者: from tcmessages.TeamcityServiceMessages import testFinished [as 别名]

#.........这里部分代码省略.........
      test_name = str(test)
      whitespace_index = test_name.index(" ")
      if whitespace_index != -1:
        test_name = test_name[:whitespace_index]
      return test_name

  def getTestId(self, test):
    return test.id

  def addSuccess(self, test):
    TestResult.addSuccess(self, test)

  def addError(self, test, err):
    TestResult.addError(self, test, err)

    err = self._exc_info_to_string(err, test)

    self.messages.testError(self.getTestName(test),
                            message='Error', details=err)

  def find_error_value(self, err):
    error_value = traceback.extract_tb(err)
    error_value = error_value[-1][-1]
    return error_value.split('assert')[-1].strip()

  def addFailure(self, test, err):
    TestResult.addFailure(self, test, err)

    error_value = smart_str(err[1])
    if not len(error_value):
      # means it's test function and we have to extract value from traceback
      error_value = self.find_error_value(err[2])

    self_find_first = self.find_first(error_value)
    self_find_second = self.find_second(error_value)
    quotes = ["'", '"']
    if (self_find_first[0] == self_find_first[-1] and self_find_first[0] in quotes and
        self_find_second[0] == self_find_second[-1] and self_find_second[0] in quotes):
      # let's unescape strings to show sexy multiline diff in PyCharm.
      # By default all caret return chars are escaped by testing framework
      first = self._unescape(self_find_first)
      second = self._unescape(self_find_second)
    else:
      first = second = ""
    err = self._exc_info_to_string(err, test)

    self.messages.testFailed(self.getTestName(test),
                             message='Failure', details=err, expected=first, actual=second)

  def addSkip(self, test, reason):
    self.messages.testIgnored(self.getTestName(test), message=reason)

  def __getSuite(self, test):
    if hasattr(test, "suite"):
      suite = strclass(test.suite)
      suite_location = test.suite.location
      location = test.suite.abs_location
      if hasattr(test, "lineno"):
        location = location + ":" + str(test.lineno)
      else:
        location = location + ":" + str(test.test.lineno)
    else:
      import inspect

      try:
        source_dir_splitted = inspect.getsourcefile(test.__class__).split("/")[:-1]
        source_dir = "/".join(source_dir_splitted) + "/"
      except TypeError:
        source_dir = ""

      suite = strclass(test.__class__)
      suite_location = "python_uttestid://" + source_dir + suite
      location = "python_uttestid://" + source_dir + str(test.id())

    return (suite, location, suite_location)

  def startTest(self, test):
    suite, location, suite_location = self.__getSuite(test)
    if suite != self.current_suite:
      if self.current_suite:
        self.messages.testSuiteFinished(self.current_suite)
      self.current_suite = suite
      self.messages.testSuiteStarted(self.current_suite, location=suite_location)
    setattr(test, "startTime", datetime.datetime.now())
    self.messages.testStarted(self.getTestName(test), location=location)

  def stopTest(self, test):
    start = getattr(test, "startTime", datetime.datetime.now())
    d = datetime.datetime.now() - start
    duration=d.microseconds / 1000 + d.seconds * 1000 + d.days * 86400000
    self.messages.testFinished(self.getTestName(test), duration=int(duration))

  def endLastSuite(self):
    if self.current_suite:
      self.messages.testSuiteFinished(self.current_suite)
      self.current_suite = None

  def _unescape(self, text):
    # do not use text.decode('string_escape'), it leads to problems with different string encodings given
    return text.replace("\\n", "\n")
开发者ID:ixcel4prescott,项目名称:USATodaySports,代码行数:104,代码来源:tcunittest.py


注:本文中的tcmessages.TeamcityServiceMessages.testFinished方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。