https://github.com/davidvanlaatum/UnitTestDB is my code, I use it along 
with another of my 
plugins https://github.com/davidvanlaatum/DistributedTests. We use them 
together to run the nearly 20,000 phpunit tests across a cluster of servers 
to take the total runtime down from several hours to under an hour. 

The problem we had with the existing jenkins stuff was that it was hard to 
split up the unit tests using the matrix plugin into equal runtime groups 
and if one unit test fatal errored a bunch of unit tests just disappeared 
from the list and sometimes no one noticed for quite some time. 

This lead me to write these two plugins. The distributed one runs a master 
job that sets up a copy of the code does any db updates via liquibase etc 
then runs a php script to generate a json file containing a list of tests, 
sets up a apache virtual host for the unit tests to talk to, then starts a 
configurable number of slave jobs that run the checkout/setup and start 
grabbing the next group of tests off the stack and runs them. If there is 
history around runtime of a group it sorts them such that groups that take 
the longest run first. When each slave finishes it copies the junit.xml 
files back to the master jobs workspace and runs the normal junit plugins 
to add the results to jenkins then the UnitTestDB is called and adds info 
to the db from the junit plugins data. 

The db tracks how long unit tests have been failing and who possibly caused 
the failure with the option for people to claim or say it wasn't them. One 
key difference is that if it doesn't see a unit test in a particular run it 
doesn't remove the failure. This fixes the problem of a unit test starts 
failing then another change introduces a fatal error that causes the unit 
test not to run, the fatal error gets fixed and the original failure now 
shows up as started happening in a new build. On the UnitTestDB page where 
people claim etc there is also an option to say a particular unit test no 
longer exists. 

I also have another jenkins job that runs several times a day to email 
people that are currently blamed for a failure along with any unclaimed 
failures.

I have been considering bypassing the normal jenkins junit plugins and send 
directly to the db as storing 20,000 unit tests per build in jenkins makes 
it use a lot of memory and very sluggish.

On Friday, July 24, 2015 at 12:30:42 AM UTC+9:30, Kanstantsin Shautsou 
wrote:
>
> Hi, could you describe detailed how do you use it/architecture?
>
> On Wednesday, July 22, 2015 at 2:42:58 PM UTC+3, David van Laatum wrote:
>>
>> Sure. I am using it to store info about our nearly 20,000 unit tests (per 
>> branch) in a db across the distributed cluster that runs them. Has worked 
>> mostly well for ages but recently started failing on hibernate trying to 
>> invoke the validation stuff and failing because it didn't have everything 
>> it needed
>>
>> On Wednesday, July 22, 2015 at 8:41:51 PM UTC+9:30, Ullrich Hafner wrote:
>>>
>>> Are you using these plug-ins in a new plug-in? It would be interesting 
>>> to hear about your experience…
>>>
>>> The plug-in has no active maintainer anymore, interested in taking over?
>>>
>>> Ulli
>>>
>>> Am 22.07.2015 um 02:33 schrieb David van Laatum <da...@vanlaatum.id.au>:
>>>
>>> I created https://github.com/jenkinsci/database-plugin/pull/1 last year 
>>> and would now like to make some other changes.
>>>
>>> Can I have commit access to the database-plugin and the mysql and 
>>> postgresql drivers?
>>> https://github.com/jenkinsci/database-postgresql-plugin
>>> https://github.com/jenkinsci/database-mysql-plugin
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Jenkins Developers" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to jenkinsci-de...@googlegroups.com.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/jenkinsci-dev/01a1f6a9-d0c0-4146-8f42-f5c5197bca62%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/jenkinsci-dev/01a1f6a9-d0c0-4146-8f42-f5c5197bca62%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/6f306c07-0d69-44d9-9f0d-0dabec60f5ae%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to