Skip to main content

Transforms tests in documentation, and viceversa

Project description

Tests

Travis results Coveralls results_

Downloads

Last month downloads from pypi Last week downloads from pypi Yesterday downloads from pypi

About

License Wheel Python versions Python interpreters

Status

Status Status

About

Inspired by Concordion, and a little bit by Fitnesse and RobotFramework, LiveDoc is a way to maintain documentation live.

The idea is to use documentation as test, so documentation is tested as well. This way you will be sure it is always updated and you can show beautiful reports to the Product Owners.

Principles

  • Should be simple, so eval will be used to process the embedded code.

  • Should be easy to be used, by supporting Markdown to avoid hard HTML.

  • Should be extensible, by allowing custom fixtures, like Concordion does.

  • Should be powerful, by providing tools to simplify the work, just like RobotFramework libraries do.

Comparative

Feature

Concordion

Fitnesse

RobotFramework

LiveDoc

Markdown support

Yes

No

No

Yes

Customizable output

No

No

No

Yes

Xunit integration

Yes

Yes

Yes

No

Xunit results

Yes

Yes

Yes

Yes

REST test facilities

No

No

Yes

Planed

Tables to write examples

Yes

Yes

Yes

Yes

Fixtures language

Java

Many

Python or Java

Python

HTML generators integration

No

No

No

Yes

Different kind of tables

No

Yes

No

Planed

Generates test code

No

No

No

Planed

How does it work?

LiveDoc parses the generated HTML, searching some special code. You can generate that code anyway you want.

In order to write Markdown easily, I’ve chosen the Concordion way: by adding links to - with code in the title attribute. Example:

<a href=”-” title=”a = TEXT”>5</a>

This will show the value, 5 as usual HTML text, but will assign the text to the variable a. Now you can operate with it:

<a href=”-” title=”a += TEXT”>5</a>

And check the result:

<a href=”-” title=”a == TEXT”>10</a>

Or just show it (LiveDoc will show anything assigned to OUT variable):

<a href=”-” title=”OUT = a”></a>

And you can add text in between:

By setting the value of <a href=”-” title=”a = TEXT”>5</a> and adding <a href=”-” title=”a += TEXT”>5</a> more, it will return <a href=”-” title=”a == TEXT”>10</a>.

But this is hard to be written and read, so it can be simplified by using Markdown:

By setting the value of [5](- “a = TEXT”) and adding [5](- “a += TEXT”) more, it will return [10](- “a == TEXT)”.

Additionally, it is possible to set the test name just assigning the name to TESTNAME variable, grouping any following comparision as an assert to that test:

If TESTNAME is set to the [test name](- “TESTNAME = TEXT”), then any comparison will be added to that test.

By default, any title (h1, h2, …) is set as the test name.

Remember that to make it even easier, any comparision is an assertion.

Roadmap

  • 0.5.0: advanced fixtures

FAQ

Does LiveDoc support python 2?

No. Python 2 is deprecated and will be retired on 2020, so please, move on to Python 3.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

livedoc-0.3.4-py3-none-any.whl (13.9 kB view details)

Uploaded Python 3

File details

Details for the file livedoc-0.3.4-py3-none-any.whl.

File metadata

File hashes

Hashes for livedoc-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b60fb2a99827f478466f276ae8d88ec287f0831283a2332a0d1713427448a311
MD5 61bb3a241ca58c9a891bb8b789f25726
BLAKE2b-256 8aae759d6f172568372904461b00ce6ae58c8d8b1c9f9354afe1ec39ff69ef12

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page