org-mode/testing
Nicolas Goaziou c7203b4142 org-export: Change source code handling API
* contrib/lisp/org-element.el (org-element-example-block-parser,
  org-element-src-block-parser): Add `:number-lines',
  `:preserve-indent, `:retain-labels', `:use-labels'  and
  `:label-fmt' properties.
* contrib/lisp/org-export.el (org-export-resolve-coderef,
  org-export-get-loc): Apply changes to src-block and example-block
  elements' properties.
(org-export-unravel-code, org-export-format-code,
org-export-format-code-default): New functions.
(org-export-handle-code): Removed function.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-example-block): Use new
  function.
(org-e-latex-src-block): Use new API.  Better handling of numbered
lines with special packages.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-example-block,
  org-e-ascii-src-block): Use new functions.
* testing/lisp/test-org-element.el: Add tests.
* testing/lisp/test-org-export.el: Add tests.
2012-03-10 13:42:46 +01:00
..
examples org-export: Fix bug with recursive file inclusion and relative paths 2012-02-23 21:28:15 +01:00
jump@820bb7d81b now using newer version of jump.el -- run $ git submodule update 2010-10-21 13:05:59 +01:00
lisp org-export: Change source code handling API 2012-03-10 13:42:46 +01:00
.gitignore ignore org-id file generated during testing 2011-11-15 11:19:39 -07:00
README adding a "troubleshooting" section to the testing README 2012-01-28 15:51:57 -07:00
org-test-ob-consts.el Fix copyright (to 2012) year and Org version (to 7.8.03). 2012-01-03 18:47:01 +01:00
org-test.el ensure that test constants are loaded by org-test.el 2012-03-01 11:37:04 -07:00

README

# -*- mode:org -*-
#+Title: Org-mode Testing
#+Property: results silent

* dependencies
The only dependency is [[http://www.emacswiki.org/emacs/ErtTestLibrary][ERT]] the Emacs testing library which ships with
Emacs24.  If you are running an older version of Emacs and don't
already have ERT installed it can be installed from its old [[https://github.com/ohler/ert][git
repository]].

* non-interactive batch testing from the command line
The simplest way to run the Org-mode test suite is from the command
line with the following invocation.  Note that the paths below are
relative to the base of the Org-mode directory.
#+BEGIN_SRC sh
  emacs -Q --batch -l lisp/org.el -l testing/org-test.el \
      --eval "(progn (org-reload) (setq org-confirm-babel-evaluate nil))" \
      -f org-test-run-batch-tests
#+END_SRC

The options in the above command are explained below.
| -Q      | ignores any personal configuration ensuring a vanilla Emacs instance is used |
| --batch | runs Emacs in "batch" mode with no gui and termination after execution       |
| -l      | loads Org-mode and the org mode test suite defined in testing/org-test.el    |
| --eval  | reloads Org-mode and allows evaluation of code blocks by the tests           |
| -f      | actually runs the tests using the `org-test-run-batch-tests' function        |

* interactive testing from within Emacs
To run the Org-mode test suite from a current Emacs instance simply
load and run the test suite with the following commands.

1) First load the test suite.
   #+BEGIN_SRC emacs-lisp :var here=(buffer-file-name)
     (add-to-list 'load-path (file-name-directory here))
     (require 'org-test)
   #+END_SRC

2) Then run the test suite.
   #+BEGIN_SRC emacs-lisp
     (org-test-run-all-tests)
   #+END_SRC
* troubleshooting
- If the value of the =org-babel-no-eval-on-ctrl-c-ctrl-c= is non-nil
  then it will result in some test failure, as there are tests which
  rely on this behavior.