comp.lang.ada
 help / color / mirror / Atom feed
From: Michael Hardeman <mhardeman25@gmail.com>
Subject: Re: Ada aunit examples
Date: Tue, 8 May 2018 10:09:28 -0700 (PDT)
Date: 2018-05-08T10:09:28-07:00	[thread overview]
Message-ID: <107d577c-e872-4259-84c4-e68a63ce6b0e@googlegroups.com> (raw)
In-Reply-To: <2018042711034634047-contact@flyx.org>

On Friday, April 27, 2018 at 5:03:48 AM UTC-4, Felix Krause wrote:
> AdaYaml [1] uses AUnit.
> 
> On 2018-04-27 04:57:56 +0000, Michael Hardeman said:
> > 
> > I want to see an example of a good test structure.
> > What is a harness, and how is it used?
> 
> It's your main executable that you call to run the tests. It 
> instantiates the test runner with the suite you want to run and 
> optionally sets up reporting. In AdaYaml, I have one harness per suite, 
> and each enables colors for the reporting output (green / red for 
> passed / failed tests). You could also do things like having one single 
> harness for all suites, and then selecting the suite with a command 
> line parameter.
> 
> > What is a test suite, and how is it used?
> 
> It groups a set of test cases. Since each test case can actually 
> consist of multiple tests, suites are a bit superfluous for small 
> projects since they introduce a hierarchy level in your test structure 
> that you might not actually need.
> 
> How you use suites depends on your project. In AdaYaml, I have two 
> suites: On including all test cases concerned with loading YAML data, 
> and one including all test cases concerned with dumping YAML data. This 
> makes sense for me since the code used for loading and dumping is 
> fairly disjoint and when I change anything on the loading side, it 
> suffices to run the loading test suite to check whether I broke 
> anything.
> 
> Initially, I had one test suite for each component (Lexer, Parser, 
> DOM-Composer), but that basically meant that each suite contained a 
> single test case. This was arguably better for running only a specific 
> test case, but in the end, I decided that since all tests run in under 
> one second, I can simply merge them.
> 
> > How do I integrate it properly into my gpr project files?
> 
> You create a new project file that compiles your tests, for example 
> project-tests.gpr (AdaYaml has yaml-tests.gpr). That makes the test 
> project a child of the main project. It typically makes sense to use 
> the same compiler options for the tests as you use for the main 
> project, like so:
> 
>     package Compiler renames Yaml.Compiler;
> 
> If you have scenario variables in your main project that alter 
> compilation behavior (e.g. for debug/release builds), this will then 
> also affect the test builds. In more complex scenarios, you may need to 
> access the main project's scenario variables and include different 
> tests based on what optional features are enabled in your main project.
> 
> 
>  [1]: https://github.com/yaml/AdaYaml
> 
> -- 
> Regards,
> Felix Krause

Hey Felix, I'm in the process of restructuring my project to add AUnit, based on your example, and I'm confused by this line.
I in your code, what does this line do?

https://github.com/yaml/AdaYaml/blob/develop/test/src/yaml-lexer-buffering_test.adb#L28


  parent reply	other threads:[~2018-05-08 17:09 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-27  4:57 Ada aunit examples Michael Hardeman
2018-04-27  9:03 ` Felix Krause
2018-04-27 16:28   ` Michael Hardeman
2018-05-08 17:09   ` Michael Hardeman [this message]
2018-05-12 16:36     ` Felix Krause
2018-07-05 19:03       ` Michael Hardeman
2018-05-10 20:39 ` Stephen Leake
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox