Comments (30)
Thanks for the information. I suspect that it also uses JavaBasePlugin instead of JavaPlugin which is not very feasible to support both in the same code base. Nevertheless it is not hopeless, so I will probably give it a shot (one day). Votes from other Android developers willing to use PIT in their project could make that day sooner :).
from gradle-pitest-plugin.
Sorry, I just enabled isssues and created one: https://github.com/koral--/gradle-pitest-plugin/issues/1
I'll check that.
UPDATE:
Issue reported by @FloKaemmerer was caused by missing RobolectricTestRunner
in test. Tests using Android platform APIs may not work without it.
UPDATE 2:
Just released version 0.0.7
does not require robolectric nor any tests source code changes like adding runners. More info in README.
from gradle-pitest-plugin.
@Shyish You can use an Android for provided by @koral-- - https://github.com/koral--/gradle-pitest-plugin . It seems to work and as the changes there are quite heavy (and incompatible) I'm not very eager to backport them to the vanilla JVM version.
from gradle-pitest-plugin.
The FAQ is in the README :)
from gradle-pitest-plugin.
It's the same issue as #24. Do you also use robolectric-gradle-plugin or something else?
Update 2016
There is a @koral--'s version of that plugin for Android. It seems to work fine and it is recommended for Android-based projects.
See: https://github.com/koral--/gradle-pitest-plugin
from gradle-pitest-plugin.
You don't need that plugin anymore. At least it's no longer mandatory. Google guys have recently launched Java Unit Tests for Android projects, so that can be used. So you only need to include the dependency testCompile 'org.robolectric:robolectric:3.0'
.
From the command line you can ./gradlew clean test
for executing the tests. The task itself is however named test<Module+Flavor>UnitTest
from gradle-pitest-plugin.
Also interested to try
from gradle-pitest-plugin.
Definitely interested.
from gradle-pitest-plugin.
Also interested, mutation testing is a great concept that issues like this have always kept me from using in any project.
from gradle-pitest-plugin.
Definitely interested.
from gradle-pitest-plugin.
Very interested
from gradle-pitest-plugin.
Me as well!
from gradle-pitest-plugin.
@szpak what's the state of this, since the creation of this issue quite a few others are interested in this
from gradle-pitest-plugin.
I'm not an Android developer. Is this the only recommended way of testing that would be good to be supported?
from gradle-pitest-plugin.
@szpak The document you linked appears to be very old. Look here for more up to date references about testing in Android
from gradle-pitest-plugin.
Really interested about this as well !
from gradle-pitest-plugin.
I cannot declare when I will be able to take a look at the possibility of implementation that. However, if someone provided a really small/minimal example of the Android application with a test which can be mutated I could use it as an acceptance test (that sunny day).
It would be good to make it possible to run unit tests from Travis, preferable without Android SDK downloaded and installed.
from gradle-pitest-plugin.
Here is my pet project that has some test in it https://github.com/emartynov/android-template-project. It also runs on Travis.
I also tried to quickly make it working for android https://github.com/emartynov/gradle-pitest-plugin, but should spend more time on it. The problem is that Android plugin can not be used together with Java, but it is actually extending it. Another problem that sources sets are empty at moment plugin applications. And if I'm correct they will be available after evaluation
from gradle-pitest-plugin.
Yup. I had similar observations and because of that I'm not if it will be possible/feasible to have just one plugin class for Java apps and Android apps. However, it was just a brief look.
Thanks @emartynov for the project.
from gradle-pitest-plugin.
Btw, @emartynov This project requires Android SDK which can be problematic (long running) to use on Travis. As I read the aforementioned documentation for unit testing:
Local unit tests are tests that run on your local machine, without needing access to the Android framework or an Android device.
This page also does not mention Android SDK - just mocking Android dependencies.
Is it possible to run unit tests without Android SDK?
from gradle-pitest-plugin.
I thought that the primary benefit of Robolectric was that it ran Android code on the JVM. If that's 100% the case, it should absolutely be possible.
from gradle-pitest-plugin.
@szpak we treat Android SDK as JDK, which you have to download and install once.
After your unit tests should be runnable offline as you expect.
And yes, Robolectric is there to run all tests on JVM, so no needs to create/run emulator or have connected android device
from gradle-pitest-plugin.
@emartynov was correct (#31 (comment)) - required data is available after project evaluation.
Additionally it seems that pitest plugin must either apply android plugin (but it doesn't know which one - application, library or test) or be applied after android plugin (like eg. android-apt does).
Here is my try: https://github.com/koral--/gradle-pitest-plugin
There are some issues with tests using particular classes (eg. org.robolectric.annotation.Config
) but simple examples (like those from functional tests) seems to work.
UPDATE:
I've managed to fix that issue.
from gradle-pitest-plugin.
Any updates on this? Would be really nice to have this working on Android.
from gradle-pitest-plugin.
@koral-- I tried using your plugin on an Android project, but I'm not able to get it to work.
I striped down my project to a simple example: https://github.com/FloKaemmerer/PiProblem
Running the testsuit runs green, no matter if I'm using Androidstudio or gradle.
But when I try to use the pitest task, the test fails.
Any tips would be appreciated.
from gradle-pitest-plugin.
@FloKaemmerer I have the same issue at the moment. I think we should translate this conversation to that repo so we don't spam this one, could you please create the issue there?
from gradle-pitest-plugin.
@Shyish I would have opened an issue over there, but @koral-- didn't enable it :-/
from gradle-pitest-plugin.
Since there seems to be a successor / fork I'll close this.
from gradle-pitest-plugin.
I would name is an Android version of that plugin. It cannot be used with the "normal" Java projects.
There is a point in the FAQ, so I hope people will be able to find it even having that issue closed.
from gradle-pitest-plugin.
Oh okay got it. Maybe also mention the Android Version in the README.
from gradle-pitest-plugin.
Related Issues (20)
- Task 'pitest' not found in root project HOT 1
- Gradle 8.1-rc-* and configuration cache has issues with plugin HOT 7
- junit5PluginVersion = '1.1.2' can the compatiable verstion be picked up from test configuration HOT 5
- Plugin execution on windows fails with CreateProcess error 206 HOT 4
- how to include testng, cucubmer and junit 3 to 5 tests to be mutated HOT 1
- Auto add junit-platform-launcher to classpath HOT 13
- info.solidsoft.pitest fails to respect toolchain configured JVM HOT 2
- Add examples of using plugin with kotlin-dsl HOT 3
- PITest suddenly breaks HOT 4
- `input`- / `outputCharset` are unusable because they are not serializable
- convention usage must be removed HOT 7
- PitestAggregator doesn't pick up all reports in a multi module project HOT 10
- Ability to override verbose from command line
- Remove history locations from inputs/outputs HOT 2
- Compatibility with JUnit 5.10.0 is broken HOT 4
- Release with CD failed with "Support for password authentication was removed" although PAT is used
- Unsupported class file major version Error? HOT 7
- idea throws exception when importing a project that uses the plugin HOT 3
- How to make sure this plugin also runs testng HOT 7
- Starting pitest fails with exception "The file name or extension is too long" 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 gradle-pitest-plugin.