An introduction to webpack module bundler with 3 real application examples (https://github.com/ilmente/webpack-devtalk). Extracted from my Webpack // Antelope devtalk (https://www.periscope.tv/w/1rmxPpzWbwmxN) at Project A Ventures in Berlin.
Improving build solutions dependency management with webpackNodeXperts
Do you know ? - " The fine art of Webpack "
Topics Covered :
- What are Build Tools ?
- What is a Dependency graph ?
- What is webpack & its impacts
- What is a webpack config file and how is it written ?
- Webpack VS Grunt/Gulp & Browserify
A presentation on how to use Webpack to bundle and build a web application using TypeScript and CSS. The presentation demonstrates how to use a few of Webpack's loaders and plugins.
There are many build tools available to JavaScript developers, but Webpack is quickly emerging as the leader of the pack. To better understand its use cases and where it excels above the rest, Jake Peyser will walk you through how to use it as a task runner and module bundler, as well as a few other handy tips. Come learn why Webpack is the most popular build tool with React developers.
An introduction to webpack module bundler with 3 real application examples (https://github.com/ilmente/webpack-devtalk). Extracted from my Webpack // Antelope devtalk (https://www.periscope.tv/w/1rmxPpzWbwmxN) at Project A Ventures in Berlin.
Improving build solutions dependency management with webpackNodeXperts
Do you know ? - " The fine art of Webpack "
Topics Covered :
- What are Build Tools ?
- What is a Dependency graph ?
- What is webpack & its impacts
- What is a webpack config file and how is it written ?
- Webpack VS Grunt/Gulp & Browserify
A presentation on how to use Webpack to bundle and build a web application using TypeScript and CSS. The presentation demonstrates how to use a few of Webpack's loaders and plugins.
There are many build tools available to JavaScript developers, but Webpack is quickly emerging as the leader of the pack. To better understand its use cases and where it excels above the rest, Jake Peyser will walk you through how to use it as a task runner and module bundler, as well as a few other handy tips. Come learn why Webpack is the most popular build tool with React developers.
Boosting performance for Webpack and React application. Steps to improve build speed and bundle size. Much of this applies to Angular, SASS, Less, and Javascript (ES6) overall.
Now that was quick: After just 12 months of development, Alkacon will release OpenCms 9 during this conference.
OpenCms 9 will extend the user interface introduced in the 8.x versions with carefully selected evolutionary enhancements, while being fully backward compatible.
In his conference opening keynote, Alexander will present the new features of OpenCms 9.
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpMatthew Davis
We take great care in our back end coding workflow, optimising, automating and abstracting as much as is possible. So why don't we do that with our front end code?
We'll take a look at some tools to help us take our front end workflow to the next level, and hopefully optimise our load times in the process!
We'll be looking at using Twig templates and optimising them for the different areas of your application, integrating Bower and Gulp for managing assets and processing our front-end code to avoid repetitive tasks - looking at how that impacts the typical Symfony workflow.
In July 2004 David Heinemeier Hansson aka dhh, a Danish programmer came up with a web application framework while building a project management tool named Basecamp. In 2012 it is now one of the fastest growing web frameworks in world. Tens of Thousands Rails applications like Basecamp, Twitter, Github, Groupon, and our own (in Bangladesh) akhoni.com and bdipo.com are live. Ruby on Rails (RoR) claims to be a breakthrough in lowering the barriers of entry to programming. Powerful web applications that formerly took months to develop can be produced now in a days. RoR is now official platform for many startup incubators. In this session we will introduce and explore the zeal of RoR. We will see how this can optimize programmer's happiness and sustainable productivity.
This was presented in Basis Softexpo 2012 and arranged by Nascenia IT, the leading Ruby on Rails development company in Bangladesh.
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...Sencha
In this session, we'll show you how CoreMedia's Maven plugin offers the deepest integration of Sencha Cmd into your Maven build process available today and takes modular Ext JS development to the next level.
Drupal Workflow Concepts Overview slides from the TriDUG Meetup on Feb 21. Used to introduce the open floor discussion on how people manage Dev -> Staging -> Production workflows.
OpenCms 9.5 (and soon version 10) has a great number of features that are included in the core distribution but are not well known and therefore often remain unused. These include:
- Many EL functions available for JSP templates
- XML schema based configuration of the content editor
- Individual content settings for sitemaps
- Advanced logging options in the workplace Administration
… and much more.
In this session, some of these valuable hidden features are presented.
gae+="jsf 2.x";
Como construir sua primeira aplicação JSF 2.x no Google App Engine usando a IDE Eclipse + Google Plugin + Unified Language.
How to build your first JSF 2.x application on Google App Engine using Eclipse IDE, Google Plugin + Google + Unified Language.
Boosting performance for Webpack and React application. Steps to improve build speed and bundle size. Much of this applies to Angular, SASS, Less, and Javascript (ES6) overall.
Now that was quick: After just 12 months of development, Alkacon will release OpenCms 9 during this conference.
OpenCms 9 will extend the user interface introduced in the 8.x versions with carefully selected evolutionary enhancements, while being fully backward compatible.
In his conference opening keynote, Alexander will present the new features of OpenCms 9.
Optimising Your Front End Workflow With Symfony, Twig, Bower and GulpMatthew Davis
We take great care in our back end coding workflow, optimising, automating and abstracting as much as is possible. So why don't we do that with our front end code?
We'll take a look at some tools to help us take our front end workflow to the next level, and hopefully optimise our load times in the process!
We'll be looking at using Twig templates and optimising them for the different areas of your application, integrating Bower and Gulp for managing assets and processing our front-end code to avoid repetitive tasks - looking at how that impacts the typical Symfony workflow.
In July 2004 David Heinemeier Hansson aka dhh, a Danish programmer came up with a web application framework while building a project management tool named Basecamp. In 2012 it is now one of the fastest growing web frameworks in world. Tens of Thousands Rails applications like Basecamp, Twitter, Github, Groupon, and our own (in Bangladesh) akhoni.com and bdipo.com are live. Ruby on Rails (RoR) claims to be a breakthrough in lowering the barriers of entry to programming. Powerful web applications that formerly took months to develop can be produced now in a days. RoR is now official platform for many startup incubators. In this session we will introduce and explore the zeal of RoR. We will see how this can optimize programmer's happiness and sustainable productivity.
This was presented in Basis Softexpo 2012 and arranged by Nascenia IT, the leading Ruby on Rails development company in Bangladesh.
SenchaCon 2016: Building Enterprise Ext JS Apps with Mavenized Sencha Cmd - F...Sencha
In this session, we'll show you how CoreMedia's Maven plugin offers the deepest integration of Sencha Cmd into your Maven build process available today and takes modular Ext JS development to the next level.
Drupal Workflow Concepts Overview slides from the TriDUG Meetup on Feb 21. Used to introduce the open floor discussion on how people manage Dev -> Staging -> Production workflows.
OpenCms 9.5 (and soon version 10) has a great number of features that are included in the core distribution but are not well known and therefore often remain unused. These include:
- Many EL functions available for JSP templates
- XML schema based configuration of the content editor
- Individual content settings for sitemaps
- Advanced logging options in the workplace Administration
… and much more.
In this session, some of these valuable hidden features are presented.
gae+="jsf 2.x";
Como construir sua primeira aplicação JSF 2.x no Google App Engine usando a IDE Eclipse + Google Plugin + Unified Language.
How to build your first JSF 2.x application on Google App Engine using Eclipse IDE, Google Plugin + Google + Unified Language.
THE GOLDEN STANDARD IN NYC MANSIONS: THE UPPER MOST STRATUM OF AMERICAN ARISTOCRACY LIVES ON A GRAND SCALE. A TRULY ROYAL AMERICAN MANSION WITH PHENOMENAL PROVENANCE—RARE FIND. IN ONE OF THE MOST PRESTIGIOUS WORLD CLASS NEIGHBORHOODS STANDS THIS BASTION TROPHY PROPERTY OF MAGNANIMOUS BEAUTY WHICH ENJOYS 20,000SF, 8 BEDS, 10 BATH, 11 WOOD-BURNING FIREPLACES AND ELEVATOR. YOU GAZE FROM HUGE WINDOWS AT YOUR DIRECT VIEWS OF CENTRAL PARK AND THE METROPOLITAN MUSEUM OF ART. THERE ISN'T A COMPARABLE. $80MM
How to support acceptance testing of web applications with the PHP tool Behat in a BDD manner.
Including an overview of acceptance testing in agile software development in general.
Concluding with the most frequent challenges of using Behat and similar tools in practice.
Moving with the times - E-Tourism 14Sep16William Price
Taking note of the travel and tourism trends, and how to make sure we keep up with them for local tourism and destination marketing at the City of Ekurhuleni Tourism Conference 2016 #COETourism
Compilación bibliográfica: Análisis, interpretación y adaptación de la Teoría y Doctrina jurídica complementarios a la Ley General de Telecomunicaciones, Tecnologías de la Información y Comunicación TIC en Bolivia
Доклад Евгения Кузьмина для "Съесть собаку" #14: PHP, 20/092018
Тезисы:
Построение процесса continuous integration/delivery на примере Laravel-приложения;
Структура организации авто-тестирования;
Интеграция запуска тестов и деплоя на CI сервере Jenkins;
Применение Docker в связке с AWS ElasticBeanstalk для blue-green деплоя.
Continuous integration / continuous delivery of web applications, Eugen Kuzmi...Evgeniy Kuzmin
What will be discussed:
- Building the process of continuous integration/delivery on the example of a Laravel application;
- The structure of the auto-testing organization;
- Integration of running tests and deploy on Jenkins CI server;
- Employment of Docker in conjunction with AWS ElasticBeanstalk for blue-green deployment.
Continuous Integration/ Continuous Delivery of web applicationsEvgeniy Kuzmin
Smart Gamma use case of implementation Continuous Integration/ Continuous Delivery for Laravel web app, tested by phpunit and Behat, build automation with Jenkins, blue-green deploy on AWS Beanstalk
In this session we will cover as much as possible the following topics:
- Quick intro to TDD (Test-Driven Development) and BDD (Behavior-Driven Development)
- Gherkin
- Behat
- Mink
- Drupal extension with Drush integration
- Acceptance criteria
- Demonstrations and show cases
B-Translator helps to get feedback about l10n (translations of the programs). It tries to collect very small translation contributions from a wide crowd of people and to dilute them into something useful. It is developed as a Drupal7 profile and the code is hosted on GitHub. Here I describe the development setup and process that I use for this project. Most of the the tips are project specific, however some of them can be used on any Drupal project.
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Mack Hardy
Mack Hardy, Dave Tarc, Damien Norris of Affinity Bridge presenting at Pacific Northwest Drupal Summit in Vancouver, October 5th, 2013. The presentation walks through management of releases, deployment strategies and build strategies with drupal features, git, and make files. Performance and caching is also covered, as well as specific tips and tricks for configuring apache and managing private files.
Behat internals for advanced usage. Symfony Camp 2016Sergey Polischook
Part 1. Common understanding Behat and BDD
Part 2. Internal implementations of Behat Core and Behat Extensions
Part 3. Current implementation of Behat in OroCRM
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Pantheon
Greg Anderson's slide deck from BADCamp 2016.
Having a fine-tuned continuous integration environment is extremely valuable, even for small projects. Today, there is a wide variety of standalone projects and online Software-As-A-Service offerings that can super-streamline your everyday development tasks that can help you get your projects up and running like a pro. In this session, we'll look at how you can get the most out of:
- GitHub source code repository
- Packagist package manager for Composer
- Travis CI continuous integration service
- Coveralls code coverage service
- Scrutinizer static analysis service
- Box2 phar builder
- PhpDocumentor api documentation generator
- ReadTheDocs online documentation reader service
- Composer scripts and projects for running local tests and builds
A complete guide of optimizing Magento performance systematically, including LAMP(Linux, Apache, MySQL, PHP) optimization, tuning inside Magento and useful tools.
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...Erich Beyrent
Drupal 8 provides a robust configuration management system which represents a paradigm shift from previous versions of Drupal. It's now easier than ever to represent your configuration in code and manage it with source control. However, that may not be enough.
This session will propose a new strategy for thinking about Drupal 8 configuration, treating it as just another dependency, managed the same way code dependencies are managed with Composer.
We'll cover:
Drupal 8 configuration management overview
New ways of managing your git repository
Composer and Drupal Console
Drupal 8 multisite considerations
Are you still on PHP 5.6-which will be EOL'd at the end of this year?! PHP 7 was released at the very end of 2015 and brought with it long awaited features to the PHP programming language while striving to keep backwards-compatibility. In this talk, I'll cover the new features including Static Type Hints, new operators, array de-referencing that you can use in your own Drupal modules to make your life easier. I'll also introduce a tool to assess how ready an existing PHP 5 codebase is to migrate to PHP 7.
Symfony console: build awesome command line scripts with easeOscar Merida
Utility scripts to kick off scheduled jobs and perform routing maintenance tasks are integral parts of any web application. You can also use them to easily integrate with your ticketing system, post to slack, or automate any number of tedious daily tasks. However, dealing with command line switches and options, getting user input, and providing meaningful output can be tedious and tricky to do yourself. In this talk, I'll introduce Symfony's console component which can handle a lot of boilerplate code for you so you can focus on the task at hand. After this talk, you'll know how to structure a basic command line app, get user input, and even package it up as a standalone phar file for others to use.
Building with Virtual Development EnvironmentsOscar Merida
Struggling with getting Apache, MySQL, PHP and everything else you need to start working on your next project? In this talk, we'll look at how to use Vagrant to setup a reusable development environment for Drupal. Vagrant automates setting it up so you can focus on getting work done, share identical environments with colleagues, and precisely match your local and production environments.
Staying Sane with Drupal (A Develper's Survival Guide)Oscar Merida
Drupal is a powerful content management framework and among the most succesful PHP projects out there. Working with Drupal's modules and theme layer means that for any problem there's more than one way to that that. Picking a good solution, or dealing with the choices of previous developers will make you pull your hair out. I'll look at what you can do to make working with Drupal, shall we say, enjoyable? We'll look at how to evaluate contributed modules, what modules should be in all your installations, examine coding conventions in Drupal, and talk about development best practices for Drupal sites.
Building with Virtual Development EnvironmentsOscar Merida
Struggling with getting Apache, MySQL, PHP and everything else you need to start working on your next project? In this talk, we'll look at how to use Vagrant to setup a reusable development environment for Drupal. Vagrant automates setting it up so you can focus on getting work done, share identical environments with colleagues, and precisely match your local and production environments.
Publishing alchemy with markdown and pandocOscar Merida
Don't confine your content to a single output! Using markdown to write documents, coupled with the open-source pandoc tool, you can easily create a myriad of output format First, we'll learn about markdown syntax, and its different flavors. Then, we'll see how to use pandoc to generate HTML pages, eBooks, PDF documents, and even Word files.
In this talk, we'll look at the tools and modules available for migrating content into Drupal. I'll describe the workflow I've used to prepare, transform, and import thousands of records into Drupal. I'll share strategies for cleaning up and parsing data and doing it in a reliable, repeatable manner. You'll learn how to efficiently use PHP, Feeds, and Feeds XPath Parser modules to handle almost any data source thrown your way.
Do you have a mess of static HTML pages? Are you maintaining piecemeal legacy applications from the days before you had a shiny CMS? In this session we'll look at migration approaches for bringing that content into Drupal. We'll share what we've learned migrating a decade's worth of pages, content across a dozen database, and audio and video content - almost 15k nodes at last count - into Drupal 7.
This session will explore:
<ul>
<li>Deciding between manual and automated approaches to moving content
<li>Planning and scheduling large migrations to maintain your sanity
<li>What workflows and review steps are needed to ensure success
<li>Using the Migrate and other contributed modules to move content into Drupal.
</ul>
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
2. Why Automated Testing
● Old school “Click around to see if anything broke”
● Should want a process that is:
– Repeatable
– Can be automated
– Not Prone to Human Error
3. Forms of Testing
● Unit Testing / TDD
● Integration Tests
● UI Testing
● Performance or Load Testing
4. Behat / Mink
● Behat is a Behavior Driven Developement
framework to help communicate how an
application should behave.
● Mink is an extension to allow website testing by
simulating interacting with it through a browser
– Goutte: makes request, parses content, no JS
– Selenium: controls a real browser, more setup.
5. Installation
●
In your project root with Composer:
composer require behat/behat
composer require behat/mink
composer require behat/mink-selection2-driver
composer require behat/mink-selenium2-driver
composer require behat/mink-extension
●
Or in your composer.json file:
"require": {
"behat/behat": "^3.0",
"behat/mink": "^1.7",
"behat/mink-selenium2-driver": "^1.3",
"behat/mink-extension": "^2.1"
},
6. Verify Installation
● Behat and it's dependencies will download to your
'vendor/' folder
● Can check that it works with:
vendo/bin/behat -V
7. Drupal Integration
● The Behat Drupal Exentions integrates Behat,
Mink, and Drupal.
● Provides out-of-the-box tests that are Drupal
aware.
● Install with:
composer require drupal/drupal-extension
8. Configuration
● Be default looks for a “behat.yml” file.
● First part – configures contexts
default:
suites:
default:
contexts:
- DrupalDrupalExtensionContextDrupalContext
- DrupalDrupalExtensionContextMarkupContext
- DrupalDrupalExtensionContextMessageContext
- FeatureContext
10. Configuring DrupalExtension
● Tell it about your site's regions
DrupalDrupalExtension:
blackbox: ~
region_map:
breadcrumb: '#breadcrumb'
branding: '#region-branding'
branding_second: '#region-branding-second'
content: '#region-content'
content_zone: '#zone-content'
11. Writing a Feature
● A “Feature” is a set of tests in a plain text file
● Use “vendor/bin/behat --init” to create a features
directory.
● You can have more than one feature file:
– “blog.feature”
– “members.feature”
– “homepage.feature”
12. Global Elements feature
● Checks that certain blocks are present
Feature: Global Elements
Scenario: Homepage Contact Us Link
Given I am on the homepage
Then I should see the link "Contact Us" in the "branding_second" region
Then I should see the "Search" button in the "branding_second" region
Then I should see the "div#block-system-main-menu" element in the "menu"
region