Coder Social home page Coder Social logo

ybonjour / test-store Goto Github PK

View Code? Open in Web Editor NEW
8.0 7.0 2.0 51.32 MB

Stores your test results

License: MIT License

Kotlin 41.29% Shell 0.99% Groovy 8.30% HTML 7.77% TypeScript 25.07% JavaScript 1.43% CSS 4.85% Ruby 0.80% Python 1.40% Java 7.77% Dockerfile 0.33%

test-store's Introduction

test-store Build Status

Stores your test results

Run test-store server

  1. Install docker and docker-compose
  2. Download docker-compose-prod.yml
  3. Run docker-compose -f /path/to/docker-compose-prod.yml up -d
  4. Access test-store on http://localhost or http://localhost:8080 if you want to use the new UI.

Store test results from your gradle build

Adapt your build.gradle according to the following template

buildscript {
    repositories {
        maven {
            url 'https://plugins.gradle.org/m2/'
        }
    }
    dependencies {
        classpath 'gradle.plugin.ch.yvu.teststore:gradle-plugin:0.12'
    }
}

apply plugin: 'ch.yvu.teststore'

teststore {
    host '<your test store server>'
    port  8080
    testSuite '<your test suite id>'
    revision System.properties['revision']
    xmlReports ~/.*\/test-results\/TEST-.*\.xml/
    changesFile 'git.log'
    changesUrlTemplate 'https://github.com/ybonjour/test-store/commit/${revision}'
    incremental false
}

Store results at the end of a run

Run ./gradlew storeResults to store your test results once you have executed your tests. It will collect all test results (in JUnit XML format) according to the pattern specified in teststore.xmlReports in your build.gradle file and send them to the test-store server.

Store results as soon as they are available

If you want to store the result of a test as soon as it finishes, you can set incremental to true. In this case you don't need to use the storeResults task.

test-store's People

Contributors

dependabot[bot] avatar mabae avatar niklausmaurer avatar ybonjour avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

ergon mabae

test-store's Issues

Make tests selectable

When I have a failed test, I'd like to copy its name to my IDE in order to find and analyse it locally. Currently, this is difficult since the names are Hyperlinks.

Run list: Optimize loading time

I want to see the latest 10 runs in less than 1 second over 3g in the run list.

Currently the latest 200 runs are loaded in one request from the server.
This turns into loading time of > 5 seconds when on a slow connection (e.g. 3g).
There shall still only be 200 runs shown on the page, but they shall be loaded in multiple requests.

Result List: Group by class name

I want to be able to easier see if multiple tests of the same class have failed.

The pattern for test names in test store is <ClassName>#<testName>.
The test results with the same result (passed/failed/retried) shall be grouped by class name.
Example:
ch.yvu.teststore.MyTest1
- test1: Failed
- test2: Failed
ch.yvu.teststore.MyTest2
- test1: Failed

ch.yvu.teststoreMyTest1
- test13 Passed

Classpath conflict when using with org.asciidoctor:asciidoctorj-pdf

Scenario:

buildscript {
    dependencies {
        classpath 'gradle.plugin.ch.yvu.teststore:gradle-plugin:0.14'
        classpath 'org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16'
    }
}

plugins {
    id 'org.asciidoctor.convert' version '1.5.6'
}

apply plugin: 'org.asciidoctor.convert'

asciidoctorj {
    version = 'v1.6.0-alpha.5'
}

asciidoctor {
    backends 'pdf'
    attributes   \
          'imagesdir': './images'
}

Command:

./gradlew asciidoctor

Result:

FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':asciidoctor'.
> org.yaml.snakeyaml.events.DocumentStartEvent.getVersion()Lorg/yaml/snakeyaml/DumperOptions$Version;

I guess, the classpath collision is caused by the org.codehaus.groovy.modules.http-builder.http-builder dependency used in this plugin.

Suggestion: use shading OR explicit dependencies (no re-packaging)

Improve performance of test statistics page

The test statistics page (that shows all the tests of a test suite) should show the first tests in < 1 sec (over the wired internal network).
To achieve this the tests shall be loaded in chunks (pages).

Result List: Optimize loading time

I want to be able to see failed tests in the result list faster in the Result List.

Currently all the tests are loaded in one request from the server.
The tests should be loaded incrementally with the failed tests first.

Result List: Order by result time

I want to sort the results in the result list by execution time, because I want to see in which order the tests have been executed. If the tests are poorly isolated, this is needed to debug test failures.

Allow Ruby scripts as migrations

Currently for migrations there are only cql scripts allowed. This does sometimes not provide enough flexibility. It should be possible to also execute ruby scripts as part of the migration.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.