SlideShare a Scribd company logo
FAST UNITS TESTS FOR ECLIPSE PLUGINS
Possible architectures and available tooling
Aurélien Pupier
Senior Software Engineer
9th
June 2016
@apupier
2 / 26
What happened?
●http://www.commitstrip.com/en/2016/03/15/how-to-optimise-your-time-as-a-coder/
3 / 26
Response Time Limits
0 5 10 15 20 25 30 35
s
JUnit Plugin with Workbench
JUnit Plugin Headless
JUnit
user's flow of
thought broken
1 Sec
lost the user's
attention
10 Sec
4 / 26
Objective
Stay Focused
5 / 26
In our case...
Fast feedback
from (unit) tests in IDE
6 / 26
Time to launch Tests
0 5 10 15 20 25 30 35
s
JUnit Plugin with Workbench
JUnit Plugin Headless
JUnit
7 / 26
Plain JUnit Tests for plugins
Several possibilities
No consensus
8 / 26
Architecture possibilities
src
src/test/java
src
src/test/java
src/test/javasrc
src src/test/java
9 / 26
User Library inside plugin
src
11 / 26
User Library inside plugin
src
src/test/java
12 / 26
User Library inside plugin
● Clean Runtime
● Small tests
● Build time
● Fragment test
● No third-party:
–
–
– Your test toolkit
13 / 26
Optional dependency inside
plugin
src
14 / 26
Optional dependency inside
plugin
src
src/test/java
15 / 26
Optional dependency inside
plugin
● Third-parties:
–
–
– Your test toolkit
● RCP application not
planned to be extended
by third-parties
● Pollute runtime!
16 / 26
Fragment
src
17 / 26
Fragment
src/test/java
src
18 / 26
Fragment
● Clean runtime
● Third-parties:
–
–
– Your test toolkit
● Most powerful with
clean runtime
● > Built-time
● Repository Complexity
● Test fragments
19 / 26
Test plugin
src
20 / 26
Test plugin
src src/test/java
21 / 26
Test plugin
● Third-parties:
–
–
– Your test toolkit
● Single plugin for
integration tests
● Pollute runtime!
● > Built-time
● Repository Complexity
● Package scoped
22 / 26
Architecture possibilities
src
src/test/java
src
src/test/java
src/test/javasrc
src src/test/java
23 / 26
All tests are important!
We talked here
25 / 26
Tooling demo
https://github.com/apupier/EclipsePlugins-
Testing
26 / 26
Going further
● Test classpath supported by PDE and Tycho?
● Pre-mocked E4 Context?
● MoreUnit automatic configuration support?
● Fast Integration/UI tests continuous feedback?
Go Continuous Test
@apupier
28 / 26
References
● https://rcpquickstart.wordpress.com/2007/06/20/unit-
testing-plug-ins-with-fragments/
● https://resheim.net/2014/12/unit-testing-eclipse-rcp-
applications.html
● https://www.nngroup.com/articles/response-times-3-
important-limits/
● http://www.commitstrip.com/en/2016/03/15/how-to-
optimise-your-time-as-a-coder/

More Related Content

More from Aurélien Pupier (14)

PDF
How to contribute textual tooling for apache camel in several id es
Aurélien Pupier
 
PDF
Feedback from an eclipse plugin developer to provide support to large set of ...
Aurélien Pupier
 
PDF
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Aurélien Pupier
 
PDF
Why and how to leverage apache camel integration framework in your io t archi...
Aurélien Pupier
 
PDF
Master your integration projects on premise and in the cloud with fuse tooling
Aurélien Pupier
 
ODP
Classic middleware integration for your IoT Gateways integration
Aurélien Pupier
 
PDF
Functional Testing made easy with SWTBot for Developers and Testers
Aurélien Pupier
 
PDF
Committing IDE meta files: misconceptions, misunderstandings, and solutions.
Aurélien Pupier
 
PPTX
How to contribute to Eclipse
Aurélien Pupier
 
PDF
Time to build and test results 3x faster - how we did it
Aurélien Pupier
 
PDF
Take advantage of memory analyzer tool inside your continuous integration
Aurélien Pupier
 
PDF
Tools and Methodologies to leverage GMF power (EclipseDay Delft 2012)
Aurélien Pupier
 
PDF
What's new GMF for Juno?
Aurélien Pupier
 
PDF
What's hot Juno?
Aurélien Pupier
 
How to contribute textual tooling for apache camel in several id es
Aurélien Pupier
 
Feedback from an eclipse plugin developer to provide support to large set of ...
Aurélien Pupier
 
Adopting language server for apache camel feedback from a java/Eclipse plugi...
Aurélien Pupier
 
Why and how to leverage apache camel integration framework in your io t archi...
Aurélien Pupier
 
Master your integration projects on premise and in the cloud with fuse tooling
Aurélien Pupier
 
Classic middleware integration for your IoT Gateways integration
Aurélien Pupier
 
Functional Testing made easy with SWTBot for Developers and Testers
Aurélien Pupier
 
Committing IDE meta files: misconceptions, misunderstandings, and solutions.
Aurélien Pupier
 
How to contribute to Eclipse
Aurélien Pupier
 
Time to build and test results 3x faster - how we did it
Aurélien Pupier
 
Take advantage of memory analyzer tool inside your continuous integration
Aurélien Pupier
 
Tools and Methodologies to leverage GMF power (EclipseDay Delft 2012)
Aurélien Pupier
 
What's new GMF for Juno?
Aurélien Pupier
 
What's hot Juno?
Aurélien Pupier
 

Recently uploaded (20)

PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
Ad

Fast unit tests for Eclipse Plugins

  • 1. FAST UNITS TESTS FOR ECLIPSE PLUGINS Possible architectures and available tooling Aurélien Pupier Senior Software Engineer 9th June 2016 @apupier
  • 2. 2 / 26 What happened? ●http://www.commitstrip.com/en/2016/03/15/how-to-optimise-your-time-as-a-coder/
  • 3. 3 / 26 Response Time Limits 0 5 10 15 20 25 30 35 s JUnit Plugin with Workbench JUnit Plugin Headless JUnit user's flow of thought broken 1 Sec lost the user's attention 10 Sec
  • 5. 5 / 26 In our case... Fast feedback from (unit) tests in IDE
  • 6. 6 / 26 Time to launch Tests 0 5 10 15 20 25 30 35 s JUnit Plugin with Workbench JUnit Plugin Headless JUnit
  • 7. 7 / 26 Plain JUnit Tests for plugins Several possibilities No consensus
  • 8. 8 / 26 Architecture possibilities src src/test/java src src/test/java src/test/javasrc src src/test/java
  • 9. 9 / 26 User Library inside plugin src
  • 10. 11 / 26 User Library inside plugin src src/test/java
  • 11. 12 / 26 User Library inside plugin ● Clean Runtime ● Small tests ● Build time ● Fragment test ● No third-party: – – – Your test toolkit
  • 12. 13 / 26 Optional dependency inside plugin src
  • 13. 14 / 26 Optional dependency inside plugin src src/test/java
  • 14. 15 / 26 Optional dependency inside plugin ● Third-parties: – – – Your test toolkit ● RCP application not planned to be extended by third-parties ● Pollute runtime!
  • 17. 18 / 26 Fragment ● Clean runtime ● Third-parties: – – – Your test toolkit ● Most powerful with clean runtime ● > Built-time ● Repository Complexity ● Test fragments
  • 18. 19 / 26 Test plugin src
  • 19. 20 / 26 Test plugin src src/test/java
  • 20. 21 / 26 Test plugin ● Third-parties: – – – Your test toolkit ● Single plugin for integration tests ● Pollute runtime! ● > Built-time ● Repository Complexity ● Package scoped
  • 21. 22 / 26 Architecture possibilities src src/test/java src src/test/java src/test/javasrc src src/test/java
  • 22. 23 / 26 All tests are important! We talked here
  • 23. 25 / 26 Tooling demo https://github.com/apupier/EclipsePlugins- Testing
  • 24. 26 / 26 Going further ● Test classpath supported by PDE and Tycho? ● Pre-mocked E4 Context? ● MoreUnit automatic configuration support? ● Fast Integration/UI tests continuous feedback?
  • 26. 28 / 26 References ● https://rcpquickstart.wordpress.com/2007/06/20/unit- testing-plug-ins-with-fragments/ ● https://resheim.net/2014/12/unit-testing-eclipse-rcp- applications.html ● https://www.nngroup.com/articles/response-times-3- important-limits/ ● http://www.commitstrip.com/en/2016/03/15/how-to- optimise-your-time-as-a-coder/