<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Hi Florian</div><div><br></div><div>Longer ago you had some good points about selecting only tests affected by recent changes as a basic functionality for our plugin - testmon.</div><div><br></div><div>We did more testing and thinking about these difficult questions and I think they will not be that bad.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">I also thought about using something like coverage to only run affected tests. How much testing did you do in your prototype? </blockquote><div><br></div><div>E.g. pytest test suite itself runs pretty nicely with testmon.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Do you keep track of (pip/setuptools) installed packages (versions)?</blockquote><div> </div><div>Not yet, but I'm pretty sure a simple detection of changes under sys.path that would trigger a full test run should be easy to implement and quick enough.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Did you try changes at various levels like new files, modules, classes, metaclasses, mocks etc? Python is very dynamic as you most likely know :)<br></blockquote><div><br></div><div>* files: sure</div><div>* modules, classes, metaclasses, mocks: </div><div>Unless I'm missing something this is not necessary. All of the dynamic constructs are created deterministically in projects py files. If none of the files involved in execution of a test is changed, then all of the dynamic constructs will be the same in the next test run. Of course I might be missing somethings, so if somebody has a good case please, let us know.</div><div><br></div><div>These things cause trouble for coveragepy (multiprocessing and gevent stuff is beeing solved): <a href="http://nedbatchelder.com/code/coverage/trouble.html">http://nedbatchelder.com/code/coverage/trouble.html</a></div><div><br></div><div>These are my thoughts about the dependencies of a test: <a href="https://github.com/tarpas/testmon#thoughts">https://github.com/tarpas/testmon#thoughts</a></div><div><br></div><div>Thanks for help,</div><div><br></div><div>Tibor</div><div>testmon - make your tests a breeze to execute <a href="http://igg.me/at/testmon">http://igg.me/at/testmon</a></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
Regards,<br>
Florian Schulze<br>
</blockquote></div><br></div></div>