igorxp5 / pytest-ekstazi Goto Github PK
View Code? Open in Web Editor NEWEkstazi is a Regression Test Selection algorithm. This is a Pytest plugin implementing it.
License: MIT License
Ekstazi is a Regression Test Selection algorithm. This is a Pytest plugin implementing it.
License: MIT License
Add a entry point in setup.py
to read ekstazi.json
file and show the dependency matrix. The entry point might be ekstazi-depdency-matrix
.
Read the results of the last test execution, calculate the hash of dependencies again, check which dependencies were changed and return which test cases have to run.
The project should be created under tests
directory.
Requirements:
Let's define in the comments of this thread, what kind of project we may do.
If the test cases have been updated, the plugin should select them even the source code was not changed.
We need save the last test results (PASS, FAIL, SKIP). Having them we can select the tests cases to run based on previous results.
See if we can do the same as original Ekstazi do in Java, observing the files that are being used in runtime. If we can't do that, our next approach would be read the test files before running the test suite, and check import files and their usage in the test cases.
The next steps depends on the success of the research, we would create a function to get dependecies of each test case in a test file, or create a wrapper to execute the tests and collect their dependencies.
Ekstazi is a Regression Test Selection algorithm. The best scenario is always run all test cases, but this takes time. This is where Ekstazi comes in, the algorithm selects the test cases based on the last changes on the project.
See below the main characteristics of Ekstazi:
TODO: Move this to a Wiki page.
The results include:
Let's save those informations in a JSON file.
Calculate the hash of the files containing the fixtures used by the test methods
If a new test case is created, the plugin selects all the test cases inside the file that the test has been created.
#2 creates a project to be used for testing. We need to create a test suite to use the plugin on that project.
Run the plugin on a huge Python project with the plugin enabled and disabled. Both test sessions must have the same test cases.
If a test file contains some variable used by some test case in the file, changing the variable doesn't affect the hash value of the test.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.