Package: bkrdoc
bkrdocThis project aims to provide tools for automated documentation generation for BeakerLib tests.1. Introduction1.1 What is bkrdoc?bkrdoc is a documentation generator from tests written using BeakerLib library. This generator makes documentation from test code with and also without any documentation markup.1.2 What it`s good for?For fast, brief and reliable documentation creation. It`s good for quick start with unknown BeakerLib test. Created documentations provides information about the documentation credibility. Also created documentations shows environmental variables and helps reader to run test script from which was documentation created.bkrdoc is written in pure python.1.3 What is BeakerLib?BeakerLib is a shell-level integration testing library, providing convenience functions which simplify writing, running and analysis of integration and blackbox tests.https://fedorahosted.org/beakerlib/1.4 How is bkrdoc licensed?BSD license. See the LICENSE file in the distribution.1.5 Contact detailsFeel free to send me an email (Kulda12@seznam.cz) for any question you have on bkrdoc project.2. Installing2.1 Prerequisitesbkrdoc was tested on Python 2.7 and 3.3 versions on Linux.bkrdoc has no external dependencies.2.2 Installation processInstallation is very simple. You have two choices. First is to download rpm from bkrdoc pypi and easily install it. Second choice is to download whole project and after that run setup.py script in bkrdoc folder. For executing setup.py file you need to run this standard python setup.py install command.3. Using3.1 Basic usageAfter installation of bkrdoc rpm you can easily run bkrdoc by typing bkrdoc in command line. You can see on these examples:for analysis:bkrdoc analysis [analysis-options] [BeakerLib_test.sh]for markup:bkrdoc markup [markup-options] [BeakerLib_test.sh]3.2 Documentation tagsFirst important thing is that all documentation comments must start with #@. For example this code comment #@ Makes temporary directory and saves work in it will create this documentation line: Makes temporary directory and saves work in it.If a documentation comment is before BeakerLib phase, function, loop or condition this comment will be taken as a description. You can see what will happen on this example:#@ Various types of arguments will start this partrlPhaseStartTest "various argument types"#@ for every argument in selected word will do...for arg in disabled EnAbLeD dIsAblEd enabled no Yes nO yes 0 1do#@ Report argumentrlRun "abrt-auto-reporting $arg"done#@ Reporting finishedrlPhaseEndresult:Test "various argument types"Various types of arguments will start this partloop: for every argument in selected word will do...Report argumentReporting finishedIn the top of every generated documentation are three lines consisting of description, information about authors and keywords of the test. These three lines are generated from test template. But it can occur that the template is missing or you want to add more data and that you can do using these tags: @keyword, @key, @author and @description. For example: #@ @key httpd will add key into keywords line:Description: Simple testAuthor: Jan KreslaKeywords: httpdAlso tagged generator supports block comments. Each block comment must start with #@ as you can see on this example:#@ Somenthing in start of the test#@ Could be anything#@ Make temporary directory and saves work in itrlPhaseStartSetupTmpDir=$(mktemp -d)pushd $TmpDirrlPhaseEndwill generate:SetupSomenthing in start of the testCould be anythingMake temporary directory and saves work in ituseful feature is that bkrdoc generator could use existing BeakerLib command comment as you can see from below example:rlPhaseStartSetuprlRun 'ps aux' 'ps command should not traceback' #@rlRun 'ps aux' 'ps command should not traceback' #@ check for tracebackrlPhaseEndwill reproduce:Setupps command should not tracebackcheck for tracebackAlso markup version supports initial comment as a global whole test comment. This initial comment or block comment must be after shebang(also could be after test description made by beaker-wizard) and must start as usuall with #@. You can see little example below:#!/usr/bin/env bash#@ This is the first line of initial documentation comment#@ second line#@ third linePACKAGE="httpd"HttpdPages="/var/www/html"HttpdLogs="/var/log/httpd"..will reproduce:Description: -Author: -Purpose: This is the first line of initial documentation commentsecond linethird lineKeywords: -..4. Package contentsAfter downloading bkrdoc project, you will see following files and directories:README.md: This README file.LICENSE: File with bkrdoc license.bkrdoc/: Folder with bkrdoc generator which is creating documentations from BeakerLib tests with and without any documentation markup.bkrdoc/analysis/: Folder with sources for automated documentation generator without documentation markupbkrdoc/markup/: Folder with sources for automated documentation generator with documentation markupexamples/: This folder contains some BeakerLib tests and generated documentationsdocs/: Folder contains TODO options and first documentation format.tests/: Folder contains files for bkrdoc testing5. CI Statusbkrdoc is automatically tested by Travis CI