SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Spock data tables plugin
for IntelliJ
+
How to create your own
plugin
@alberto_deavila
Team Lead @ Salenda
We help customers
reach their potential
with Atlassian tools
Global reach
& support
London UK
Dallas USA
Madrid Spain
Tallin Estonia
New York USA
San Diego USA
Toronto Canada
Montreal Canada
Springfield, MO USA
Leamington Spa UK
Kuala Lumpur Malasia
Why to create Spock data
table plugin?
Problem #1
Problem #2
Problem #3
Solution
Why? droidName | createMoreFilms | createJarJarBinks | darthVaderLives | babyJodaAppears | leiaIgnoresHan
'R2-D2' | false | false | false | true | false
'R2-D2' | false | false | false | true | true
'R2-D2' | false | false | true | true | false
'R2-D2' | false | false | true | true | true
'R2-D2' | false | true | false | true | false
'R2-D2' | false | true | false | true | true
'R2-D2' | false | true | true | true | false
'R2-D2' | false | true | true | true | true
'R2-D2' | true | false | false | true | false
'R2-D2' | true | false | false | true | true
'R2-D2' | true | false | true | true | false
'R2-D2' | true | false | true | true | true
'R2-D2' | true | true | false | true | false
'R2-D2' | true | true | false | true | true
'R2-D2' | true | true | true | true | false
'R2-D2' | true | true | true | true | true
'C3P0' | false | false | false | false | false
'C3P0' | false | false | false | false | true
'C3P0' | false | false | false | true | false
'C3P0' | false | false | false | true | true
'C3P0' | false | false | true | false | false
'C3P0' | false | false | true | false | true
'C3P0' | false | false | true | true | false
Problem #1
Problem #2
Why?
Problem #3
Solution
void “Sum 2 values are equals to sum tho others"() {
expect: ‘the sum must be equals‘
a + b == c + d
where:
a | b | c | d
0 | 0 | 0
1 | 1 | 2
0 | 1 | 1
1 | 0 | 1
2 | 2 | 4
4 | 5 | 9
3 | 3 | 6
3 | 0 | 3
2 | 2 | 4
5 | 1 | 6
1 | 5 | 6
4 | 4 | 8
}
Problem #1
Problem #3
Why?
Problem #2
Solution
void "element #element is contained by the list #list is #contained"() {
expect: 'check if the list contains the element'
list.contains(element) == contained
where:
element | list | contained
}
Creating a tool to do the job
Problem #1
Why?
Problem #2
Problem #3
Solution
Download it from
IDE plugins section
Find it on Jetbrains plugins site!
Check out the
code
Let see in action
Next steps
Send JAR to your teammates
Create a Jetbrains account,
upload the plugin and wait
to be approved
Publish plugin
You just need to package
your plugins, send to your
teammates and they need
to Install plugin from disk
Distribute your plugin
Compatibility check
rebrand.ly/plugin-resources
Resources
We are hiring!
rebrand.ly/adaptavist-hiring
Questions

Mais conteúdo relacionado

Mais de Alberto De Ávila Hernández

Nitro for your Grails App: how to improve performance. Greach '18
Nitro for your Grails App: how to improve performance. Greach '18Nitro for your Grails App: how to improve performance. Greach '18
Nitro for your Grails App: how to improve performance. Greach '18Alberto De Ávila Hernández
 
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...Alberto De Ávila Hernández
 

Mais de Alberto De Ávila Hernández (6)

Graalvm with Groovy and Kotlin - Madrid GUG 2019
Graalvm with Groovy and Kotlin - Madrid GUG 2019Graalvm with Groovy and Kotlin - Madrid GUG 2019
Graalvm with Groovy and Kotlin - Madrid GUG 2019
 
Graalvm with Groovy and Kotlin - Greach 2019
Graalvm with Groovy and Kotlin - Greach 2019Graalvm with Groovy and Kotlin - Greach 2019
Graalvm with Groovy and Kotlin - Greach 2019
 
Let Codenarc check if you write good Groovy code
Let Codenarc check if you write good Groovy codeLet Codenarc check if you write good Groovy code
Let Codenarc check if you write good Groovy code
 
Nitro for your Grails App: how to improve performance. Greach '18
Nitro for your Grails App: how to improve performance. Greach '18Nitro for your Grails App: how to improve performance. Greach '18
Nitro for your Grails App: how to improve performance. Greach '18
 
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...
Testing Grails 3, the goob (unit), the bad (integration) and the ugly (functi...
 
De Java a Swift pasando por Groovy
De Java a Swift pasando por GroovyDe Java a Swift pasando por Groovy
De Java a Swift pasando por Groovy
 

Último

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Último (20)

Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Spock data tables plugin for IntelliJ + How to create you own plugin

  • 1. Spock data tables plugin for IntelliJ + How to create your own plugin @alberto_deavila Team Lead @ Salenda
  • 2.
  • 3. We help customers reach their potential with Atlassian tools
  • 4. Global reach & support London UK Dallas USA Madrid Spain Tallin Estonia New York USA San Diego USA Toronto Canada Montreal Canada Springfield, MO USA Leamington Spa UK Kuala Lumpur Malasia
  • 5. Why to create Spock data table plugin?
  • 6. Problem #1 Problem #2 Problem #3 Solution Why? droidName | createMoreFilms | createJarJarBinks | darthVaderLives | babyJodaAppears | leiaIgnoresHan 'R2-D2' | false | false | false | true | false 'R2-D2' | false | false | false | true | true 'R2-D2' | false | false | true | true | false 'R2-D2' | false | false | true | true | true 'R2-D2' | false | true | false | true | false 'R2-D2' | false | true | false | true | true 'R2-D2' | false | true | true | true | false 'R2-D2' | false | true | true | true | true 'R2-D2' | true | false | false | true | false 'R2-D2' | true | false | false | true | true 'R2-D2' | true | false | true | true | false 'R2-D2' | true | false | true | true | true 'R2-D2' | true | true | false | true | false 'R2-D2' | true | true | false | true | true 'R2-D2' | true | true | true | true | false 'R2-D2' | true | true | true | true | true 'C3P0' | false | false | false | false | false 'C3P0' | false | false | false | false | true 'C3P0' | false | false | false | true | false 'C3P0' | false | false | false | true | true 'C3P0' | false | false | true | false | false 'C3P0' | false | false | true | false | true 'C3P0' | false | false | true | true | false
  • 7. Problem #1 Problem #2 Why? Problem #3 Solution void “Sum 2 values are equals to sum tho others"() { expect: ‘the sum must be equals‘ a + b == c + d where: a | b | c | d 0 | 0 | 0 1 | 1 | 2 0 | 1 | 1 1 | 0 | 1 2 | 2 | 4 4 | 5 | 9 3 | 3 | 6 3 | 0 | 3 2 | 2 | 4 5 | 1 | 6 1 | 5 | 6 4 | 4 | 8 }
  • 8. Problem #1 Problem #3 Why? Problem #2 Solution void "element #element is contained by the list #list is #contained"() { expect: 'check if the list contains the element' list.contains(element) == contained where: element | list | contained }
  • 9. Creating a tool to do the job Problem #1 Why? Problem #2 Problem #3 Solution
  • 10. Download it from IDE plugins section
  • 11. Find it on Jetbrains plugins site!
  • 13. Let see in action
  • 15. Send JAR to your teammates Create a Jetbrains account, upload the plugin and wait to be approved Publish plugin You just need to package your plugins, send to your teammates and they need to Install plugin from disk Distribute your plugin