We are using the Protractor testing framework in order to test our Gentics Mesh AngularJS Admin UI webapp. In this blogpost I will explain our setup and how we use docker to run the protractor tests.
Installation: npm install -g protractor
extern "C" { | |
#include "user_interface.h" | |
} | |
// Change MAC | |
byte *mac = (byte*)malloc(6); | |
WiFi.macAddress(mac); | |
mac[0] = 0x20; | |
mac[1] = 0x11; |
$ ./test.sh | |
mesh uses an image, skipping | |
selenium uses an image, skipping | |
Building tester | |
Step 1 : FROM jotschi/protractor | |
---> ffd0a8bd68a6 | |
Step 2 : RUN mkdir -p /app | |
---> Using cache | |
---> b22bae66ffa7 | |
Step 3 : COPY *.js /app/ |
FROM jotschi/protractor | |
RUN mkdir -p /app | |
COPY *.js /app/ |
We are using the Protractor testing framework in order to test our Gentics Mesh AngularJS Admin UI webapp. In this blogpost I will explain our setup and how we use docker to run the protractor tests.
Installation: npm install -g protractor
#!/bin/bash | |
set -o nounset | |
set -o errexit | |
BUILDDIR=/tmp/eclipse-docker | |
DOCKERHOST=tcp://cetus.office:2375 | |
mkdir -p $BUILDDIR | |
cd $BUILDDIR |
@Test | |
public void testCreatePerformance() { | |
// Warmup the system caches etc | |
warmup(); | |
// Start the stopwatch | |
mark(); | |
// Invoke the create node action 1000 times | |
for(int i = 0; i < 1000; i++) { | |
createNode(); | |
} |
//https://dweet.io/dweet/for/aboard-curve?a=green&aMode=fade&b=yellow&bMode=fade&c=red&cMode=fade&d=red&dMode=fade | |
#include <ESP8266WiFi.h> | |
#include <ESP8266HTTPClient.h> | |
const char* ssid = "sid"; | |
const char* password = "pw"; | |
const int ShiftPWM_latchPin=12; | |
const int ShiftPWM_clockPin=13; |
= Continuous Delivery Changelog
I have recently changed the Gentics Mesh release process from regular releases to a continous delivery release process. One of the questions that directly came up was how to manage a public changelog in continuous delivery workflow?
Previously (regular sequential releases) I would write the changelog entry upfront and since I knew what release version would be expected i could just refer to that version. With CD this changes. I can no longer refer to a specific version since i'm doing CD without actually knowing the version upfront.
I know that I could just fetch the SCM log and generate a changelog using that information but I don't like to use SCM messages for a public (enduser friendly) changelog. A changelog that just consists of SCM messages is way to noisy. Unfortunately it seems that all the open source changelog plugin utlize the git log to build a changelog.
For Gentics CMS I already wrote my own [maven changelog plugin](https://github.com/gentics/maven-changelog-
Functional Performance Tests For Java
Since there seems to be multiple definitions of functional tests here is mine:
A functional test is a test which will test the exposed application features (e.g.: Internal or REST API's ) with less or no mocks compared to unit tests. Functional tests may also interact with databases or other external services.
For Gentics Mesh we already have a lot of functional tests but no performance tests. It is therefore hard to tell whether a change or even a dependency update actually improves or degrades the service performance.
The Gentics Mesh functional tests are written using JUnit. Please keep in mind that a JUnit test must not necessarily be a unit test. In case of mesh we have a lot of functional tests which startup an embedded mesh instance and invoke regular REST requests via HTTP.
//var myrepo = null; | |
var nodegit = require("nodegit"); | |
var fs = require('fs'); | |
var changelogFolder = "changes"; | |
var files = fs.readdirSync(changelogFolder); | |
// Iterate over each change file | |
files.forEach( function(file, index) { | |
console.log("Checking file ", file); |