Comments (10)
I'm re-scoping this issue to only implementing the same test quick functionality people are used to.
from bloop.
I've been exploring bloop
for a large-ish Gradle work project recently (hence all the noise), and this is one of those features that I miss from SBT.
from bloop.
I recently stated using testQuick
with sbt. For me, it seems to works correctly.
This is really a time saver. It would be really nice to have that supported in bloop. Especially in combinations with the -w
flags. So you can do some modification and have a very quick feedback on whether the tests pass. This would improve the "red-green-refactor" cycle.
from bloop.
I've used it in scalameta where we have one project with dozens of test suites. It works great in some cases (for example while editing on test suite) but sometimes not so much.
One somewhat related feature which I find seriously missing in sbt (it works in bazel) is the ability to infer which tests to run from a list of files that have changed. For large projects sbt test
can take a long time to run and a lot of the time you only change a couple files in one or two leaf modules. Of course, if your tests rely on escaping the zinc analysis graph then you need to handle this manually, but for most projects I think something fairly basic can get you far.
from bloop.
Yeah, that's something I want so badly. I'd like to implement it, I know how to get it working. I'm assigning this to me, when Mr. @Duhemm is done with the test support I'll get it done.
from bloop.
Upstream ticket I opened some months ago: sbt/zinc#265
from bloop.
I use test-only more often but I want to use test-quick, it just doesn't have great change detection.
In my perfect world I want test-quick to run tests in roughly this order:
- Tests that failed last run
- New tests
- Changed tests
- Tests impacted by changes since last run
Additionally in my beautiful perfect world I then want test to run with the above order, followed by
5. Test suite last time taken to run (in the case parallel testing is enabled, start with slow suites)
from bloop.
I use test-only more often but I want to use test-quick, it just doesn't have great change detection.
I think this is an artifact of sbt's implementation. I believe we could make it work better, following a similar strategy to the one you propose, but that goes against one of my short-term goals in Zinc: remove the API representation altogether and not serialize it in the analysis file.
from bloop.
What is the current behavior exactly?
from bloop.
@lloydmeta Would be great if you can have a look at it and implement it. I feel like porting the implementation should be reasonably simple.
from bloop.
Related Issues (20)
- Incremental compile is broken in 1.5.10 HOT 3
- Bloop home directory on Linux HOT 2
- Submit to winget HOT 1
- bug: deduplicate for cancelled compilations
- Support JDK 19 HOT 2
- sbt-bloop (0.5.12) suddenly started compiling when running sbt bloopInstall HOT 6
- Cannot discover test frameworks
- `java.lang.ArrayIndexOutOfBoundsException` while compilation HOT 4
- Include provided dependency in runtime classpath
- Issues with semanticdb if workspace contains whitespace
- Invalid "sources" list generated for project with '-test' suffix.
- installation on mac fails HOT 5
- Bloop can't compile Dotty HOT 4
- multiple errors like "bad path element "... ": no such file or directory when building Apache Kafka HOT 4
- Broken link in the docs
- Is there an older version of bloop that I can use with Gradle 2.x ? HOT 2
- Warning causing evaluation to fail
- When fatal warnings set Java ones are also shown as errors HOT 10
- AssertionError when compiling HOT 2
- Scrollback cleared when in `--watch` mode
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 bloop.