fantomfancordion

How to change the target folder for afFancordion results?


When I run afConcordion fixtures within my Fantom project, the generated fixtures end up in this folder:

$FAN_HOME/temp/concordion/no-name

But I'd like them to be written in a folder called target under my project's folder.

Looking at afConcordion documentation it seems that is possible, at least for afBedSheet applications, if I extend the ConcordionRunner, e.g.

class MyConcordionRunner : ConcordionRunner {

    new make(|This|? f := null) : super(f) {
        outputDir = `concordion-results/`.toFile
        // other runner configuration...
    }
}

But I'd like to use the default ConcordionRunner instead of implementing my own and still decide where I want my test results. Is it possible, please?


Solution

  • Sure it is! ConcordionRunner is a standard class and outputDir is just a field, so...

    runner := ConcordionRunner()
    runner.outputDir = `target/`.toFile
    

    Or, using the it-block ctor parameter:

    runner := ConcordionRunner() { it.outputDir = `target/`.toFile }
    

    Putting it together with FixtureTest:

    class TestStuff : FixtureTest {
    
        ...
    
        override ConcordionRunner concordionRunner() {
            ConcordionRunner() { it.outputDir = `target/`.toFile }
        }
    }