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
next prev 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