[Avocado-devel] correlating xunit output to job-results

Lukáš Doktor ldoktor at redhat.com
Wed Nov 28 15:32:11 UTC 2018


Dne 28. 11. 18 v 15:35 Brian J. Murrell napsal(a):
> On Mon, 2018-11-26 at 17:03 +0100, Lukáš Doktor wrote:
>>
>> This is a new information. So are you actually looking for job-YYYY-
>> MM-DDTHH.MM-UID only, or are you looking for test-name => test-
>> output-dir mapping?
> 
> I'm looking to correlate a given display of one of mnay xunit test
> results in Jenkins job to the one of many job-YYYY-MM-DDTHH.MM-UID
> directories I have collected for the test run.
> 
> My xunit output shows me I have a failed test.  I want to go to the
> job-YYYY-MM-DDTHH.MM-UID I have in the archives for the job to see more
> information about it.
> 

I see, so I actually misunderstood you. This seems even simpler, how about this: https://github.com/avocado-framework/avocado/pull/2922

>> My idea was to basically do something like:
>>
>>     for name in xunit.gettests().get('name'):
>>         tid = name.split('-')[0]
>>         print(glob.glob("latest/test-results/%s-*" % tid))
>>
>> which although not nice should always return only 1 match.
> 
> This doesn't correlate to an avocado/job-results/job-YYYY-MM-DDTHH.MM-
> UID directory does it though?
> 
>>
>>> Looking at a given Test instance I can see lots of attributes and
>>> actually now that I look, I can see several attributes that embed
>>> that
>>> job-YYYY-MM-DDTHH.MM-UID value into pathnames such as _stderr_file,
>>> _stdout_file, _Test__logfile, _Test__sysinfodir, _Test__logdir,
>>> _ssh_logfile, _Test__outputdir.
>>>
>>> I can surely peel the value I am looking for out of any one of
>>> these
>>> but of course, that feels like I am peeking under the kimono and
>>> using
>>> something that is subject to change in the future.
> 
> So while I can do this, I can't seem to display it in any way such that
> it gets into the xunit results in any way.  I can print it, in
> __init__(), say, but that doesn't end up in the xunit results file.
> 
> Hrm.  Looking again, I see that self.log.info() results end up on the
> xunit Standard Output.  This is probably where I can add this.  I just
> need to convert all tests to using my subclass and calling the parent's
> setUp() in their own setUp(), etc.
> 

That seems like an ugly hack... Hopefully we'll find a more suitable solution :-)

>> I think you understand well (based on the first response). Basically
>> I run a job, it produces several hundreds of MB of log files, which
>> are attached as artifacts and then several tenths of MB is attached
>> again as the XUNIT file, because the "debug.log" is always embedded
>> into the XUNIT results. It'd be nice to simply add link to the
>> archived results, but I haven't found a way back then...
> 
> You could just delete the duplicates before archiving them in Jenkins. 
> I do that for the jobs-results/*/html/ subdirs since the links in them
> are broken anyway.
> 

Well, it's just a symlink, not taking much space... It's there for compatibility reasons with 36lts and had been removed after 52lts was released...

Regards,
Lukáš

> Or maybe have avocado not produce the debug.log if xunit output is
> enabled.
> 
> Cheers,
> b.
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/avocado-devel/attachments/20181128/2b09fa35/attachment.sig>


More information about the Avocado-devel mailing list