Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

teamcity-messages

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

teamcity-messages

Send test results to TeamCity continuous integration server from unittest, nose, py.test, twisted trial, behave (Python 2.6+)

  • 1.32
  • PyPI
  • Socket score

Maintainers
1

Python Unit Test Reporting to TeamCity

| |jb_project| |license| |pypi_version| | |versions| |teamcity_ci|

This package integrates Python with the TeamCity <http://www.jetbrains.com/teamcity/>__ Continuous Integration (CI) server. It allows sending "service messages" <https://confluence.jetbrains.com/display/TCDL/Build+Script+Interaction+with+TeamCity>__ from Python code. Additionally, it provides integration with the following testing frameworks and tools:

  • py.test <http://pytest.org/>__
  • nose <https://nose.readthedocs.org/>__
  • Django <https://docs.djangoproject.com/en/1.8/topics/testing/advanced/#other-testing-frameworks>__
  • unittest (Python standard library) <https://docs.python.org/2/library/unittest.html>__
  • Trial (Twisted) <http://twistedmatrix.com/trac/wiki/TwistedTrial>__
  • Flake8 <https://flake8.readthedocs.org/>__
  • Behave <https://behave.readthedocs.io/>__
  • PyLint <https://www.pylint.org/>__

Installation

Install using pip:

::

pip install teamcity-messages

or from source:

::

python setup.py install

Usage

This package uses service messages to report the build status to TeamCity. See https://confluence.jetbrains.com/display/TCDL/Build+Script+Interaction+with+TeamCity for more details

unittest


If you wish to use the Python default unittest framework, you should
modify the Test runner, e.g.:

.. code:: python

    import unittest
    from teamcity import is_running_under_teamcity
    from teamcity.unittestpy import TeamcityTestRunner

    class Test(unittest.TestCase):
        ...

    if __name__ == '__main__':
        if is_running_under_teamcity():
            runner = TeamcityTestRunner()
        else:
            runner = unittest.TextTestRunner()
        unittest.main(testRunner=runner)

See ``examples/simple.py`` for a full example.

If you are used to running unittest from the command line, instead of
using ``python -m unittest``, you could use
``python -m teamcity.unittestpy``.

nose
~~~~

Test status reporting is enabled automatically under TeamCity build.

py.test
~~~~~~~

Test status reporting is enabled automatically under TeamCity build.

Django
~~~~~~

For Django 1.6+: Use the ``TeamcityDjangoRunner`` runner instead of the
default ``DiscoverRunner`` by changing the following setting in your
settings.py:

.. code:: python

    TEST_RUNNER = "teamcity.django.TeamcityDjangoRunner"

If you are using another test runner, you should override the
``run_suite`` method or use the ``DiscoverRunner.test_runner`` property
introduced in Django 1.7.

flake8
~~~~~~

Test status reporting is enabled automatically under TeamCity build.

PyLint
~~~~~~

Add ``--output-format=teamcity.pylint_reporter.TeamCityReporter`` to
the ``pylint`` command line.

tox
~~~

Pass TEAMCITY_VERSION environment variable inside your test virtenv.
TEAMCITY_VERSION environment variable exists during build on TeamCity.
teamcity-messages uses it in order to enable reporting to TeamCity.

::

    [testenv]
    passenv = TEAMCITY_VERSION

Twisted trial

Add --reporter=teamcity option to trial command line

Behave


For Behave 1.2.6:

.. code:: python

    from behave.formatter import _registry
    from behave.configuration import Configuration
    from behave.runner import Runner
    from teamcity.jb_behave_formatter import TeamcityFormatter

    _registry.register_as("TeamcityFormatter", TeamcityFormatter)
    configuration = Configuration()
    configuration.format = ["TeamcityFormatter"]
    configuration.stdout_capture = False
    configuration.stderr_capture = False
    Runner(configuration).run()


Python version compatibility
----------------------------

See https://pypi.org/project/teamcity-messages for Python version compatibility

Contact information
-------------------

https://github.com/JetBrains/teamcity-messages

TeamCity support: http://www.jetbrains.com/support/teamcity

License
-------

Apache, version 2.0 http://www.apache.org/licenses/LICENSE-2.0

.. |jb_project| image:: http://jb.gg/badges/official.svg
   :target: https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub
   :alt: Official JetBrains project
.. |license| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
   :target: https://opensource.org/licenses/Apache-2.0
   :alt: Apache 2.0 license
.. |versions| image:: https://img.shields.io/pypi/pyversions/teamcity-messages.svg
   :target: https://pypi.python.org/pypi/teamcity-messages
   :alt: Python versions supported
.. |pypi_version| image:: https://badge.fury.io/py/teamcity-messages.svg
   :target: https://pypi.python.org/pypi/teamcity-messages
   :alt: PyPI version
.. |teamcity_ci| image:: https://teamcity.jetbrains.com/guestAuth/app/rest/builds/buildType:(id:TeamCityPluginsByJetBrains_TeamCityPythonReporter_Build)/statusIcon.svg
   :target: https://teamcity.jetbrains.com/viewType.html?buildTypeId=TeamCityPluginsByJetBrains_TeamCityPythonReporter_Build
   :alt: TeamCity Build Status   


Change Log
----------

Version 1.32 Tue Sep 27 2022
  - flake8: fix flake8 >= 5 by @itsb #266 #264

Version 1.31 Tue Feb 22 2022
  - python: supported Python 3.10
  - escape unencodable messages by @kri-k #261

Version 1.30 Fri Dec 17 2021
  - support pylint >= 2.12 by @Tirzono #259
  - pytest: fix assert diffs by @ikonst #247
  - pytest: support swapdiff as option by @throwable-one #244

Version 1.29 Fri Jun 25 2021
  - python: supported Python 3.9
  - support pylint >= 2.8 by @Tirzono #242
  - pytest: add an option to swap actual/expected in diff

Version 1.28 Thu Apr 30 2020
  - support coverage >= 5.0.1 by @enkelli #225 #218
  - python: dropped Python 2.6, 3.5 support. Latest version to support them is 1.27
  - python: supported Python 3.8

Version 1.27 Fri Nov 8 2019
  - pylint: more compatibility fixes #215

Version 1.26 Tue Nov 5 2019
  - drop Python 3.4 support
  - pylint: support pylint >= 2.3 by @PetrWolf #215
  - unittest: fix test hierarchy for subtests in tests with doc comments by @throwable-one #221

Version 1.25 Mon Apr 15 2019
  - pytest: fix comparing asserts by @ikonst #210
  - Retry writes to stream on a EAGAIN IOError by @morganwahl #213

Version 1.24 Mon Mar 18 2019
  - pylint: initial support by @PetrWolf #171 #200

Version 1.23 Sun Mar 10 2019
  - Correct supported python versions, description, keywords

Version 1.22 Sun Mar 10 2019

  - python: dropped Python 2.4, 2.5, 3.2, 3.3 support. Latest version to support them is 1.21
  - python: supported Python 3.6, 3.7
  - behave: initial support
  - unittest: subtests support
  - various unicode fixes
  - nose, unittest: correctly capture stdout to provide better test output
  - twisted: format twisted Failure objects by @jackrobison
  - various test infrastructure fixes by @sambrightman
  - flake8: correctly initialize options by @sambrightman
  - various fixes to use teamcity-messages code in JetBrains PyCharm IDE

Version 1.21 Mon Jan 2 2017

  - pytest: internal Error during test collection with pytest and teamcity-messages plugin #112
  - nose: support capturing test output from successful tests, #113
  - Fix possible error when joining bytes and unicode (Victor Makarov, https://github.com/vitek)

Version 1.20 Wed Aug 3 2016

  - flake8: 3.x support (Marc Abramowitz, https://github.com/msabramo)
  - flake8: --no-teamcity option for 3.x

Version 1.19 Sun Jun 26 2016

  - fix flake8 2.6.0 support #103 (Cody Maloney, https://github.com/cmaloney)

Version 1.18 Fri May 27 2016

  - pytest: do not report setup fixtures as separate tests (https://github.com/JetBrains/teamcity-messages/issues/91)
  - pytest: better test location presentation
  - pytest: support for pytest-pep8 and pytest-lint plugins
  - nose: make sure to turn reason into string when skipping test #98 (Piyush Gupta, https://github.com/piyushg91)
  - twisted: fix twisted failure test reporting #88 (Alexey Larkov, https://github.com/gmlexx)
  - flake8: better test name #89 (Marc Abramowitz, https://github.com/msabramo)
  - Don't force a newline at the start of service messages #90 (Gary Donovan, https://github.com/garyd203)

Version 1.17 Sat Oct 17 2015

  - support coverage >= 4.0
  - automatically detect TeamCity in flake8 plugin (Marc Abramowitz, https://github.com/msabramo)
  - more messages support (Marc Abramowitz, https://github.com/msabramo)
    buildProblem, buildStatus, setParameter, importData, enableServiceMessages, disableServiceMessages etc

Version 1.16 Sat Sep 12 2015

  - blocks messages support (Marc Abramowitz, https://github.com/msabramo)

Version 1.15 Fri Aug 28 2015

  - Twisted's trial support (Alexey Larkov, https://github.com/gmlexx)
  - nose: fix tests reporting in multiprocess environment, thanks to Lewis Coates, https://github.com/lewisc
  - Fix UnicodeEncodeError when sys.stdout.encoding is None, thanks to Marc Abramowitz, https://github.com/msabramo

Version 1.14 Sat May 23 2015

  - support python 2.4, 2.5
  - nose: report skip test reason (Lewis Coates, https://github.com/lewisc)

Version 1.13 Sun Mar 29 2015

  - report coverage statistics from py.test pytest-cov plugin (Joseph Lombrozo, https://github.com/djeebus)
  - flake8 support (Joseph Lombrozo, https://github.com/djeebus)

Version 1.12 Fri Jan 16 2015

  - unittest: fix 2.6 compat

Version 1.11 Fri Jan 16 2015

  - nose: handle errors/failures in teardown/setup
  - nose: support multiprocess mode
  - nose: correctly report captured output
  - unittest: support skipped tests in Python 2.6 (by unittest2)
  - unittest: support subtests (Python 3.4+)

Version 1.10 Fri Jan 09 2015

  - py.test: limit captured stdout/stderr by 1M per test and send it to TeamCity in chunks of 50K chars
  - py.test: automatically enable TeamCity reporting under TeamCity build
  - py.test: analyze capture flag of capture plugin and set captureStandardOutput parameter of testStarted accordingly
  - py.test: report setup failures as a separate test
  - py.test: report captured stdout/stderr (Aron Curzon, https://github.com/curzona) https://github.com/JetBrains/teamcity-messages/issues/12
  - py.test: fix parallel tests reporting https://github.com/JetBrains/teamcity-messages/issues/11

Version 1.9 Thu Jan 08 2015

  - Django support (Ralph Broenink, https://github.com/ralphje)
  - Fix test hierarchies on nose and py.test
  - py.test: report errors in setup and teardown
  - py.test: report collect errors
  - py.test: support xfail
  - nose: support skipped tests
  - unittest: support skip, expected failure and unexpected success
  - Totally rewritten integration tests
    * Thanks to Ralph Broenink (https://github.com/ralphje) and Leonid Bushuev (https://github.com/leo-from-spb)

Version 1.8 Sat Feb 08 2014

  - extensive tests for nose integration (James Carpenter)
  - added timestamps to TeamCity service messages (James Carpenter)

Version 1.7 Sun Feb 03 2013

  - py.test support (Aaron Buchanan)
  - official Python 3 support

Version 1.6 Tue Dec 06 2011

  - Bundle forgotten examples/simple.py

Version 1.4 Tue Apr 27 2010

  - Fixed http://youtrack.jetbrains.net/issue/TW-11313

Version 1.3 Fri Apr 11 2008

  - Added newlines due to http://youtrack.jetbrains.net/issue/TW-4412

Version 1.2 Thu Apr 10 2008

  - Fixed tests gold data

Version 1.1 Thu Apr 10 2008

  - Fixed README

Version 1.0 Tue Apr 08 2008

  - initial release

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc