Git Product home page Git Product logo

livingdoc-core's Introduction

License GitHub version Gitter Build Status

testIT LivingDoc

LivingDoc is a powerful tool that supports implementing collaboration driven methods like Behavior Driven Development or Specification By Example. Due to its smart integration into Atlassian Confluence the comfortable editing possibilities of confluences can be used to write the feature specifications and the acceptance tests.

Get in touch

You can contact us using Gitter or create an issue.

Documentation

The user documentation provides in-depth documentation on all the features. If you have further questions please get in touch with us.

Contribute

Check the Contributing documentation.

Issues

If you experience any issues please use GitHub's issue system to tell us about it!

Licensing

testIT LivingDoc is licensed under GNU General Public License, Version 3.0.

Sponsoring

testIT LivingDoc is mainly developed by NovaTec Solutions GmbH, a German consultancy firm that drives quality in software development projects.

Origin

testIT LivingDoc is a fork of the great but deprecated GreenPepper. We thank the GreenPepper Team from Pyxis for their support in the first migration stages!

livingdoc-core's People

Contributors

benhamidene avatar jaspreetparhar avatar jose1984 avatar laurasmus avatar muellermatthias avatar pkleimann avatar slu-it avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

livingdoc-core's Issues

Javassist version needs update

We are using org.reflections:reflections in order to handle annotations on our fixture classes.
That library has a dependency on org.javassist: javassist in a version that has massive problems with Java 8 classes.

For Example: When a fixture class contains Java 8 Streambased handling of collections, the class will not be read by Reflections and the fixture will therefore not be found!

Since the development of org.reflections:reflections has come to a stand still, this needs to be fixed on our end. Simply enforcing a newer version of org.javassist: javassist works fine.

Just manage the following dependency within our main POM file:

<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.21.0-GA</version>
</dependency>

Communication problem with the runner

Hello,
I test TestIt livingDoc and I feel we can not communicate with the runner.
I run runner in localhost with the command :
/usr/java/JDK8/bin/java -jar livingdoc-remote-agent-1.1.1-complete.jar -port 56000
and when I execute the test I have the following errors:
org.apache.xmlrpc.XmlRpcException: null values not supported by XML-RPC at org.apache.xmlrpc.XmlWriter.writeObject(XmlWriter.java:231) at org.apache.xmlrpc.XmlWriter.writeObject(XmlWriter.java:297) at org.apache.xmlrpc.XmlWriter.writeObject(XmlWriter.java:297) at org.apache.xmlrpc.XmlWriter.writeObject(XmlWriter.java:297) at org.apache.xmlrpc.XmlRpcClientRequestProcessor.encodeRequest(XmlRpcClientRequestProcessor.java:70) [wrapped] org.apache.xmlrpc.XmlRpcClientException: Failure writing request at org.apache.xmlrpc.XmlRpcClientRequestProcessor.encodeRequest(XmlRpcClientRequestProcessor.java:74) at org.apache.xmlrpc.XmlRpcClientRequestProcessor.encodeRequestBytes(XmlRpcClientRequestProcessor.java:100) at org.apache.xmlrpc.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:69) at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:193) at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:184) at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:177) at info.novatec.testit.livingdoc.server.rpc.xmlrpc.client.XmlRpcV2ClientImpl.execute(XmlRpcV2ClientImpl.java:54) [wrapped] info.novatec.testit.livingdoc.server.rpc.xmlrpc.client.XmlRpcClientExecutorException: org.apache.xmlrpc.XmlRpcClientException: Failure writing request at info.novatec.testit.livingdoc.server.rpc.xmlrpc.client.XmlRpcV2ClientImpl.execute(XmlRpcV2ClientImpl.java:56)
I throw the runner or not, I still have the same problem.
About my config and test :

Using LivingDoc with JEE applications

Hi,

We created fixtures inside our JEE application. These fixtures need to call EJB's but it seem it doesn't work since the fixtures are not inside the EJB container. Is the only work-around for this is to call the webservices of our JEE application from the fixtures? Thanks..

org.apache.xmlrpc.XmlRpcException: Unsupported Java type: class info.novatec.testit.livingdoc.server.transfer.SpecificationLocation

Hi,

We would like to use the LivingDoc Maven plugin for our CI build. We have our specifications in Confluence. Running mvn livingdoc:freeze gives us:

info.novatec.testit.livingdoc.server.LivingDocServerException: org.apache.xmlrpc.XmlRpcException: org.apache.xmlrpc.XmlRpcException: Unsupported Java type: class info.novatec.testit.livingdoc.server.transfer.SpecificationLocation
    at info.novatec.testit.livingdoc.repository.LivingDocRepository.downloadSpecificationsDefinitions(LivingDocRepository.java:120)
    at info.novatec.testit.livingdoc.repository.LivingDocRepository.listDocuments(LivingDocRepository.java:97)
    at info.novatec.testit.livingdoc.maven.plugin.SpecificationDownloaderMojo.listDocuments(SpecificationDownloaderMojo.java:89)
    at info.novatec.testit.livingdoc.maven.plugin.SpecificationDownloaderMojo.downloadSuitesFrom(SpecificationDownloaderMojo.java:75)
    at info.novatec.testit.livingdoc.maven.plugin.SpecificationDownloaderMojo.downloadAllFrom(SpecificationDownloaderMojo.java:70)
    at info.novatec.testit.livingdoc.maven.plugin.SpecificationDownloaderMojo.downloadAllSpecs(SpecificationDownloaderMojo.java:64)
    at info.novatec.testit.livingdoc.maven.plugin.SpecificationDownloaderMojo.execute(SpecificationDownloaderMojo.java:58)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.xmlrpc.XmlRpcException: org.apache.xmlrpc.XmlRpcException: Unsupported Java type: class info.novatec.testit.livingdoc.server.transfer.SpecificationLocation
    at org.apache.xmlrpc.XmlRpcClientResponseProcessor.decodeException(XmlRpcClientResponseProcessor.java:104)
    at org.apache.xmlrpc.XmlRpcClientResponseProcessor.decodeResponse(XmlRpcClientResponseProcessor.java:71)
    at org.apache.xmlrpc.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:73)
    at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:194)
    at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:185)
    at info.novatec.testit.livingdoc.repository.LivingDocRepository.downloadSpecificationsDefinitions(LivingDocRepository.java:113)
    ... 27 more

Our pom is using:

<plugin>
                <groupId>info.novatec.testit</groupId>
                <artifactId>livingdoc-maven</artifactId>
                <version>1.1.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <fixtureSourceDirectory>src/main/java</fixtureSourceDirectory>
                    <fixtureOutputDirectory>target/classes</fixtureOutputDirectory>
                    <specsDirectory>src/specs</specsDirectory>
                    <reportsDirectory>target/livingdoc-reports</reportsDirectory>
                    <reportsType>xml</reportsType>
                    <repositories>
                        <repository>
                            <name>Tools</name>

                            <!--We use LivingDocRepository. What's the difference with AtlassianRepository?-->
                            <type>info.novatec.testit.livingdoc.repository.LivingDocRepository</type>
                            <!--Our server-->
                            <root>http://vl48/rpc/xmlrpc?handler=livingdoc1&amp;sut=petsut</root>
                            <suites>
                                <!--The name of the Repository UID-->
                                <suite>Wiki Test-TOOLS</suite>
                            </suites>
                        </repository>
                    </repositories>
                </configuration>
                <executions>
                    <execution>
                        <id>livingdoc</id>
                        <goals>
                            <goal>compile</goal>
                            <goal>resources</goal>
                            <goal>fixture-jar</goal>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

Csharp Support

Hi,
I try to find to find some documentation on the Csharp Test Runner, but I have not succeeded does livingdoc can run Csharp fixture?

java.lang.LinkageError after executing a recorded Selenium test

Hi LivingDoc Team,

we currently evaluate LivingDoc and get following error messages inside confluence executing a recorded Selenium test against the Spring petclinic.war

Version numbers:
JDK Version is 1.7.0.80
Tomcat is 8.0.30
Confluence Versions is 5.7.1

Error message
java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.xpath.XPathContext$XPathExpressionContext.getVariableOrParam(Lorg/apache/xml/utils/QName;)Lorg/apache/xpath/objects/XObject;" the class loader (instance of info/novatec/testit/livingdoc/util/JoinClassLoader) of the current class, org/apache/xpath/XPathContext$XPathExpressionContext, and the class loader (instance of org/apache/catalina/loader/WebappClassLoader) for interface org/apache/xalan/extensions/ExpressionContext have different Class objects for the type text.getVariableOrParam(Lorg/apache/xml/utils/QName;)Lorg/apache/xpath/objects/XObject; used in the signature at org.apache.xpath.XPathContext.(XPathContext.java:1057) at org.apache.xpath.jaxp.XPathExpressionImpl.eval(XPathExpressionImpl.java:107) at org.apache.xpath.jaxp.XPathExpressionImpl.eval(XPathExpressionImpl.java:91) at org.apache.xpath.jaxp.XPathExpressionImpl.evaluate(XPathExpressionImpl.java:176) at org.openqa.selenium.firefox.internal.FileExtension.readIdFromInstallRdf(FileExtension.java:121) at org.openqa.selenium.firefox.internal.FileExtension.writeTo(FileExtension.java:61) at org.openqa.selenium.firefox.internal.ClasspathExtension.writeTo(ClasspathExtension.java:64) at org.openqa.selenium.firefox.FirefoxProfile.installExtensions(FirefoxProfile.java:443) at org.openqa.selenium.firefox.FirefoxProfile.layoutOnDisk(FirefoxProfile.java:421) at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:95)

The POM of our fixture

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <repositories>
        <repository>
            <id>central</id>
            <name>Central Repository</name>
            <url>http://repo.maven.apache.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <groupId>de.skmworld</groupId>
    <artifactId>acceptance-tests</artifactId>
    <packaging>jar</packaging>
    <version>0.0.1</version>
    <name>PetClinicSystem</name>
    <properties />
    <dependencies>
        <dependency>
        <groupId>info.novatec.testit</groupId>
        <artifactId>livingdoc-core</artifactId>
        <version>1.0.0</version> </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>2.0</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.48.2</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>test-jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.6</version>
                <executions>
                    <execution>
                        <id>jar-with-dep</id>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <descriptors>
                                <descriptor>src/assembly/src.xml</descriptor>
                            </descriptors>
                            <descriptorRefs>
                                <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

2016-02-23 16_53_51-livingdoc configuration - confluence
2016-02-23 17_06_46-petclinicowners - acceptancetests - confluence

We can provide the sources via Github if you want.
Many thanks!

Sandra

LivingDoc Documentation License

Hi,

First of all, thank you for having retrieve most of GreenPepper useful documentation.
After the loss of the original one, I am worrying about the availability of projects documentation now.

Is the documentation opensource ?
Can it be forked modified, and the modification suggested ?
How do we retrieve it ?

ListOf Interpreter does not invoke @BeforeTable annotated methods

According to the documentation only the RuleFor and DecitionTable interpreters invoke @BeforeTable annotated methods. The ListOf seams to be a similar type of table but does not invoke these methods (at least in our project (LD v1.1.4).
Is there a special reason for that or just an oversight?

CLI property parse doesn't handle white spaces correctly

Whitespaces are not handled correctly when parsing the command line for options. As an example a sequence of spaces will lead to options being ignored!

The parser should pase options by splitting the string at any whitespaces not contained in quotes: ".....".

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.