Re: on jenkins.plone.org collective.xmltestreport fails

Timo Stollenwerk <tisto-z4DKO/[email protected]>
Newsgroups gmane.comp.web.zope.plone.devel
Message-ID <[email protected]>
Am 18.06.14 11:18, schrieb Jens W. Klein:
> Looks like test-setup is a never ending story. I'am a bit puzzled that
> we count so much on testing and jenkins and all the setup is so fragile.

Our test setup is fragile, because we have packages that have serious 
test isolation problems, use outdated test frameworks or are just 
written in a bad and fragile way. I'm working on improving the situation 
for quite some time, but it is just impossible to rewrite all bad tests. 
As long as nobody steps up to work on improving that situation, we have 
to live with it.

The fragile test setup is the main reason (not the only one though) why 
it is absolutely essential that we stick with our CI rules:

http://buildoutcoredev.readthedocs.org/en/latest/continous-integration.html

If we don't it is incredibly hard or sometimes even impossible to figure 
out what went wrong.

The collective.xmltestreport "failure" was not present before those 
commits broke the build yesterday:

http://jenkins.plone.org/job/plone-5.0-python-2.7/2574/changes

I'm pretty sure the xmltestreport failure is just covering another test 
failure. Though, since people broke the build and committed on the 
broken build, there is no way to tell anymore. And since there are so 
many commits now, reverting them one by one is also not an option any 
longer.

If everybody would stick with the CI rules and just revert commits if 
they break, Jenkins could tell exactly which commit is responsible and 
our job would be a lot easier. If people ignore those rules we end up 
with a mess like this.

Continuous Integration is a practice not a set of tools. A perfect CI 
setup with clean and good tests would certainly make things easier. 
Though, there is no way around following our Continuous Integration best 
practices, if we want a stable build. And as long as we don't have those 
perfect tests, it is even more important to follow those rules.

Cheers,
Timo

>
> http://jenkins.plone.org/job/plone-5.0-python-2.7/2593/console
>
> collective.xmltestreport fails. We may need tests for it ;)
>
> https://github.com/collective/collective.xmltestreport/tree/master/collective/xmltestreport
> -> test free
>
> Traceback (most recent call last):
>     File "/home/jenkins/workspace/plone-5.0-python-2.7/bin/jenkins-test",
> line 491, in <module>
>       '--test-path',
> '/home/jenkins/.buildout/eggs/zope.globalrequest-1.0-py2.7.egg',
>     File
> "/home/jenkins/.buildout/eggs/collective.xmltestreport-1.3.1-py2.7.egg/collective/xmltestreport/runner.py",
> line 60, in run
>       failed = run_internal(defaults, args, script_parts=script_parts)
>     File
> "/home/jenkins/.buildout/eggs/collective.xmltestreport-1.3.1-py2.7.egg/collective/xmltestreport/runner.py",
> line 77, in run_internal
>       runner.options.output.writeXMLReports()
>     File
> "/home/jenkins/.buildout/eggs/collective.xmltestreport-1.3.1-py2.7.egg/collective/xmltestreport/formatter.py",
> line 284, in writeXMLReports
>       outputFile.write(prettyXML(testSuiteNode))
>     File
> "/home/jenkins/.buildout/eggs/collective.xmltestreport-1.3.1-py2.7.egg/collective/xmltestreport/utils.py",
> line 42, in prettyXML
>       return ElementTree.tostring(tree)
>     File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1127, in
> tostring
>       ElementTree(element).write(file, encoding, method=method)
>     File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 821, in write
>       serialize(write, self._root, encoding, qnames, namespaces)
>     File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 940, in
> _serialize_xml
>       _serialize_xml(write, e, encoding, qnames, None)
>     File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 940, in
> _serialize_xml
>       _serialize_xml(write, e, encoding, qnames, None)
>     File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 938, in
> _serialize_xml
>       write(_escape_cdata(text, encoding))
>     File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1074, in
> _escape_cdata
>       return text.encode(encoding, "xmlcharrefreplace")
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position
> 12613: ordinal not in range(128)
>
>
>
> ------------------------------------------------------------------------------
> HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
> Find What Matters Most in Your Big Data with HPCC Systems
> Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
> Leverages Graph Analysis for Fast Processing & Easy Data Exploration
> http://p.sf.net/sfu/hpccsystems
> _______________________________________________
> Plone-developers mailing list
> Plone-developers-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/plone-developers
>

------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.