Comments (6)
+1
a potential use could be async testing, but that would a whole different thing than the current use of coroutines. Busted does not have a scheduler to run the different coroutines, hence its sequential and hence slower (and in current code, as a side effect, it runs the wrong order).
from busted.
We need to add a mechanism for async testing, to handle things like testing web requests, database connections, etc for integration testing. We'll accomplish this separately from the threading issue, since this will be per-test rather than per-file. I assume we'll use coroutines for that.
from busted.
Coroutines were implemented as a placeholder for lualanes. I want each file to run in a separate thread eventually, for now I just broke it out at the describe block level. It forced me to decouple the test runner and make it async.
from busted.
It forced me to decouple the test runner and make it async.
Probably you didn't mean that exactly. In (vanilla) Lua you can't have async things. It's a sync language, coroutines included.
If coroutines they are an "experimental stand-in" for lualanes, I would recommend moving them to an "experimentation branch" - leave master as simple as possible (i.e. tables and functions) until the Lualanes implementation is ready.
In any case, the reason is explained, so I consider this issue closed.
from busted.
Probably you didn't mean that exactly. In (vanilla) Lua you can't have async things. It's a sync language, coroutines included.
If strictly sticking to unit tests, you're right. But there are many libraries that do async stuff, usually they are the ones implementing main-loops. Copas as a socket scheduler for example, or any app using QT. For those you might want an async test.
from busted.
Also, being able to have a maximum execution time on tests is nice, for performance testing. Threads give us that, and that's valuable for single threaded apps as well.
from busted.
Related Issues (20)
- Can't install dependency of busted via luarocks HOT 1
- Can't install dependency 'mediator_lua' of busted via luarocks HOT 2
- Lua
- bad release HOT 1
- Can't install/run on Windows 10 HOT 3
- Garbled characters in output HOT 4
- Wrong `LUAROCKS_SYSCONFDIR` in `busted.bat` HOT 1
- `package.moonpath` is never updated which breaks Moonscript module requirements HOT 1
- [feature request] Support clean up function for it() HOT 4
- Async documented but not functional HOT 1
- [question] how to pass argument to function when trying to catch errors HOT 2
- [help needed] fails to execute as a standalone file HOT 2
- the comand line argument with space will be split when use --lua
- Fails to encode results to json due to non-string error objects being raised
- [Feature Request] Could we introduce a new context for ordered tests? HOT 11
- Make it easier to run a global before_each before all before_each blocks or a global after_each after all after_each blocks HOT 1
- Make it easier to run a global before_each before all before_each blocks or a global after_each after all after_each blocks HOT 1
- Fennel loader? HOT 2
- Bug? Loader applied to wrong language
- Teee HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from busted.