From xradiograph

PmWikiDevelopment: Testing


General Notes

I’m looking into unit-testing with SimpleUnit


Issue: Chunks of PmWiki core-code will need to be mocked, or a working install of pmwiki will be required. (Can such a thing be set up via a script?)


At the very least, ‘pmwiki’ will need to be defined, as that’s usually the first check in code:


<?php if (!defined('PmWiki')) exit();



however, that’s pretty simple. pmwiki.php contains:





Not sure about other core functions or code. Including pmwiki.php is, I believe, a non-starter, as it will output an entire web-page by default, and no way of turning that off AFAIK.


UPDATE: That may not be the case, as I found this 2007 message, so-far undocumented on (save in the changelog @ PmWiki:ChangeLog#v22022):



From: Patrick R. Michaud <pmichaud <at>>
Subject: Re: Using pmwiki's functions without building the wiki
Date: 2007-01-15 18:52:11 GMT (6 years, 47 weeks, 4 days, 21 hours and 20 minutes ago)

On Mon, Jan 15, 2007 at 05:50:57PM +0100, Wouter Groeneveld wrote:
>    I would like to use IncludeText() so I can access the text in my wiki
>    pages, but I do _NOT_ want to generate the whole skin and page.
>    So when I include("pmwiki.php") > this automatically generates my wiki. I
>    don't want that, I only want to display the includeText() output.
>    Is there any possibility to tell pmwiki not do do anything? I only want to
>    be able to use the function includetext()

For 2.2.0-beta22 I'm adding an $EnableActions configuration variable;
if set, then PmWiki will do all of its initialization and other work,
but won't call any $HandleActions routines.

Then you can do the following:

    $EnableActions = 0;

This will initialize PmWiki (along with any configuration/customizations
that are being made, e.g. from local/config.php), but won't actually
perform any actions.  The caller can then call the desired action
or other functions as desired.

Would that work for your needs?




UPDATE 2013.12.16: I can confirm that pmwiki.php can be included and used for testing; I do not yet know what “best practices” may be... hope to have minimal updates in here this week.


See Also




Category Tags

php development testing

Retrieved from
Page last modified on February 12, 2014, at 10:59 AM