t4im / shakedown Goto Github PK
View Code? Open in Web Editor NEWThe development, testing and debugging suite for Minetest.
Home Page: https://github.com/t4im/shakedown/wiki
The development, testing and debugging suite for Minetest.
Home Page: https://github.com/t4im/shakedown/wiki
On a testing server, testers might be provided more tools for testing than on a production server, but some tools might not be as "save" to give out (like running a complete test suite, that will clog up everything)
There should be an easy but sufficient permission model.
Currently tests can only be selected by setting a config variable in minetest.conf to a filter that is matched against the spec-description followed by (re)starting the game. There is also an ingame command that runs based on the same filters. But since the world is already loaded by then, some tests might not be runnable anymore. Others run very slow, due to worldupdates.
Generally it is very inconvenient to run selected tests during test authoring or mod testing.
There needs to be a better way to provide match criteria and a better selection mechanism.
Use the feature proposed in minetest/minetest#1587 after it was implemented to color failed vs passed tests in the console to ease recognition of each type.
Currently tests can either fail or pass. But sometimes tests should be neutrally skipped instead.
allow for step definitions to be abstracted and be reused as a whole
Find a good way to run tests with provided parameters, and to provide these parameters.
Allowing to substitute selected variables in descriptions will make descriptions easier to maintain (instead of having to use concatenation for example) but also help removing specifics to help with #10
Multi line string descriptions should be properly trimmed and formatted.
On the other hand, they also should be discouraged.
blocks #13
To aid #5, an intuitive way to specify test tags/categories in a test-specification is needed.
For example with travis-ci.
Fixtures, that are run after/before every contained testcase should be added.
The player mocking object still lacks a proper implementation for inventories.
Options are:
... to handle cases, in which the declaration order needs to be different to its execution.
Asserts define hard expectations that have to be met, or the test will fail.
However not all expectations are valid all the time.
A conditional expression will skip the complete definition with unmet expectations.
Assumptions solve this, by treating the test as "skipped" (see #2 ) if failing instead. This way the test remains defined, and can e.g. be rerun, once the expectations are met.
Using conjunctions as steps makes the code harder to reuse and is seen as an bdt antipattern.
A test for common conjunctions (and, but) should be added, that warn the test authors about this.
Best time might be after minetest/minetest#2263 is resolved, so we can log the warnings properly.
...at the very least for what is being set after a simple construction.
Formspecs have some deprecated fields to look for and should match the provided inventory size (as long as it is matchable: Some complicated formspec/inventory setups might not be as easy to 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.