Code Monkey home page Code Monkey logo

concordion / concordion-net Goto Github PK

View Code? Open in Web Editor NEW
14.0 14.0 9.0 100.25 MB

This version has been superceded by http://github.com/concordion/concordion.net. Concordion is an acceptance testing framework that allows users to place their specifications in HTML file. These files contain references to fixtures in test code that are executed by Concordion.

Home Page: http://www.concordion.org/dotnet/

License: Other

C# 97.90% HTML 0.70% CSS 1.14% JavaScript 0.25% Batchfile 0.02%

concordion-net's Introduction

Build Status Maven Central Apache License 2.0

Concordion is an open source runner for executable specifications that creates rich living documentation.

Users should see the Concordion web site for details of how to download and use Concordion.

This README covers information for people wanting to work with the Concordion Java source code. Unmaintained versions of Concordion are also available for other languages, but not with the full feature set. See Concordion.NET, pyconcordion and ruby-concordion.

Target Java version

Concordion currently targets Java 8 and above.

Building Concordion

Concordion uses Gradle as a build tool. The code base includes the Gradle Wrapper, which will automatically download the correct version of Gradle.

From the command line, run gradlew tasks to show available tasks.

Note: If the current directory is not on your path, you will need to use ./gradlew tasks on Unix-based systems, or .\gradlew tasks on Windows.

Compiling and Running the Tests

The test task runs both the Concordion specification tests and unit tests. Since Concordion supports both JUnit Vintage and JUnit Jupiter, the tests can run with either version of JUnit.

To run the tests with JUnit Jupiter, run the following from the command line:

gradlew clean test

To run the tests with JUnit Vintage, run the following from the command line:

gradlew clean testVintage

This will download the required dependencies, clean the existing project, recompile all source code and run all the tests. The Concordion specification output is written to the ./build/reports/spec folder.

Pre-processor

To switch between the JUnit Jupiter and Vintage tests, Concordion uses the Manifold preprocessor.

For example:

#if JUNIT_VINTAGE
@RunWith(ConcordionRunner.class)
#else
@ConcordionFixture
#endif

The JUNIT_VINTAGE compiler argument is set by the testVintage Gradle task.

Creating a jar file

Run the following from the command line:

gradlew clean jar

The jar file is written to the ./build/libs folder.

Installing a jar file into your local Maven repository

Installing a Concordion jar file into your local Maven repository makes it available to other projects that are using Maven or Gradle to manage their dependencies.

Run the following from the command line:

gradlew pTML

(where pTML is short for publishToMavenLocal).

Using the Concordion jar file from your local Maven repository in a Gradle project

In order to use the local Maven repository in a Gradle project, you must add mavenLocal() to your repositories block. You can add this to the project's build.gradle script, or set it globally by adding the following to your ~/.gradle/init.gradle script:

allprojects {
    repositories {
        mavenLocal()
    }
}

You will then need to ensure that your project's build.gradle script refers to the version you have in your local Maven repository, for example your dependencies might include:

org.concordion:concordion:2.0.0-SNAPSHOT

or

org.concordion:concordion:+

for the latest version.

Importing the project into your IDE

Dependent on the version of your IDE, you may need to install a Gradle plugin to your IDE before importing the project. See Gradle tooling for details.

On importing the project to your IDE, the required dependencies will be downloaded.

For IntelliJ IDEA, installing the Manifold plugin will enable IntelliJ to recognise the Manifold preprocessor syntax.

Wiki

See the wiki for our version numbering approach and details of making a new release.

Project History

History prior to April 2013 is in Google code archive code and history.

concordion-net's People

Contributors

elvirah avatar john-ross avatar shakaree avatar x97mdr avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

concordion-net's Issues

Concordion.NET gobbles up spaces inside of SPAN tags, even inside of PRE tags

A PRE tag is supposed to be rendered verbatim, including white-space. However, when Concordion.NET processes an HTML file, if there is a space or spaces between two SPANs, it gobbles them up.

For example, suppose you have this:

<pre>
<span>X</span> <span>Y</span>
</pre>

If you view the HTML file before processing, you'll see it correctly rendered with a space between the X and Y. However, after processing, the space is gone.

Cannot use another css

I'm unsure if this is a bug or missing feature. I want to use another css instead of the one that gets woven in. Looking at the code (ConcordionBuilder ctor and StylesheetEmbeddingRenderer), it looks like there is no oportunity to dismiss it. Am I wrong?

Update to NUnit 2.6.4

The NuGet package of concordion-net requires NUnit 2.6.3. Can you update to NUnit 2.6.4?

Will we be able to write and share extensions?

As far as i can tell, there is no support for extensions in Concordion.Net.
I have been using hidden span tags to isolate tests in transactions and embedded javascript to"html'ify" encoded output from helper classes, including rescource file helper and auto-generated links to related specifications.
Theese are features I feel would go nicely in extensions, and using hooks like in the java Concordion, they could have been written much cleaner and less intrusive.
So I'm just wondering if this (Extension API) is even on the pipeline yet?

Settings of App.config not being loaded by Concordion

The solution to demonstrate these bugs is at http://goo.gl/kkVqSA

  1. I cannot load concordion tests (BDDConcordion.dll) in NUnit GUI runner directly, without creating a project. I have to create a project and then add the assembly.
    While running only NUnit tests, a project is not needed for one assembly in project.

  2. Nunit tests can load the database settings from app.config file. Concordion plugin for NUnit does not load these settings.

Please check.

Concordion.NET doesn't handle PRE tags correctly

When you have a PRE tag in your HTML, it's supposed to be rendered exactly as written, honoring spacing and such. However, when Concordion.NET processes it, it adds indenting to the first line of it. In fact, the only way to defeat this is to insert a non-breaking space and line-break.

Here's what the HTML file looks like before processing:
Raw

Here's what the HTML file looks like after processing:
Processed

Here's the HTML file to repro this. The system doesn't like HTML files, so it's zipped.
PreHandlingBug.zip

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.