Improve performance of VS Test results file parsing#586
Improve performance of VS Test results file parsing#586dirkrombauts merged 1 commit intopicklesdoc:developfrom
Conversation
079c504 to
8546bb9
Compare
On a VS test result file containing many tests, the current code is pretty slow. This was observed when migrating a codebase from NUnit3 result files to trx. Here, based on profiling, we improve the performance by caching the parsing of the results: - a lookup of tests per feature - a dictionary of test results per test id On a sample file with about 1000 tests, the performance improves from 40.2 seconds to 2.5 seconds. This was tested with: ``` .\Pickles.exe -f xxx -o xxx --trfmt=vstest --enableComments=false -df=json -lr=xxx.trx ``` The resulting `pickledFeatures.json` file is identical to the one before these changes (except the `GeneratedOn` field).
|
Hello @dirkrombauts ! This is similar to #503 from 2 years ago, but for VS tests this time 😄 I've seen your message in the readme about your search for a new maintainer. I hope you'll be willing to accept this PR anyway! |
| { | ||
| public WhenParsingMultipleVsTestTestResultsFiles() | ||
| : base("VsTest." + "results-example-vstest - Run 1 (failing).trx;" + "MsTest." + "results-example-mstest - Run 2 (passing).trx") | ||
| : base("VsTest." + "results-example-vstest - Run 1 (failing).trx;" + "VsTest." + "results-example-vstest - Run 2 (passing).trx") |
There was a problem hiding this comment.
The way the feature names are found in VsTestElementExtensions.cs is now slightly more precise, which ended up catching this typo 😄
|
@tlecomte thank you for your contribution! I have moved away from Pickles. A while ago I wrote a message about it being time to hand over the torch. You are still actively using Pickles, and just now wrote a contribution. Do you want to take over the project? I will give you full access to the repository and everything, and sign over the website domain to you. |
|
Thanks @dirkrombauts for the offer. Unfortunately I don't think I have enough time to step in. Really sorry ! |
|
Too bad. I will merge the code into develop. I currently have no plan on when to release a new version. |
|
Released in version v2.21.0. |
On a VS test result file containing many tests, the current code is pretty slow. This was observed when migrating a codebase from NUnit3 result files to trx.
Here we improve the performance by caching the parsing of the results:
On a sample file with about 1000 tests, the performance improves from 40.2 seconds to 2.5 seconds.
This was tested with:
The resulting
pickledFeatures.jsonfile is identical to the one before these changes (except theGeneratedOnfield).