Hi Steven,

It's still very much active, I've just had to take some time out to do some
work on my night job (managing a Rock band). I'm drafting a blog post this
afternoon with an update on progress and some new ways to contribute, so
stay tuned.

Cheers
Chris D



2016-02-01 14:22 GMT-08:00 Steven Oliver <oliver.ste...@gmail.com>:

> Hey,
> I just wanted to drop in and see if any progress had been made on this?
>
> I for one am very excited about the possibility.
>
> Thank you,
> Steven N. Oliver
>
>
>
> On Fri, Jan 8, 2016 at 2:55 PM -0800, "Chris Daley" <chebiza...@gmail.com>
> wrote:
>
> Hi Al,
>>
>> Thanks for the input, this is very much appreciated and incredibly useful!
>> I had in fact just written a post on my blog asking for exactly this sort
>> of feedback - you can read it here 
>> -http://chrisdaley.biz/test-driven-development-in-vala-pt-1.html
>>
>> I've got some time to work on this over the next few weeks and hope to have
>> a usable release out for testing not long after, so now's the time for
>> anyone else interested in a testing framework to hit me up with your ideas!
>>
>> Have a good weekend,
>> Cheers
>> Chris D
>>
>>
>> 2016-01-08 14:29 GMT-08:00 Al Thomas :
>>
>> > > From: Chris Daley
>>
>> >
>> > > Sent: Tuesday, 5 January 2016, 1:16
>> > > Subject: Re: [Vala] Testing framework
>> > >
>> > > I've done some thinking about this over the last couple of months and
>> > used
>> > > the holiday period to finish off a few things, namely a port of Gherkin
>> > to
>> > > Vala. You can grab it from here if you want to check it out:
>> > > https://github.com/chebizarro/gherkin-vala
>> > >
>> > > I'm going to be sketching out what I think is a reasonable
>> > > roadmap over the next week or so with a view to an alpha release around
>> > the
>> > > end of February. If anyone is interested in contributing, or has any
>> > > specific ideas about what sort of features they would find the most
>> > useful,
>> >
>> > > please get in touch
>> >
>> >
>> > Hi,
>> >
>> > Great work on porting Gherkin 3 to Vala.
>> >
>> > I wanted to put forward a few ideas that I have been slowly
>> > researching over the past year or so in the hope they are
>> >
>> > insightful to any developments of testing tools for Vala.
>> >
>> > Gherkin
>> > -------
>> > Gherkin is a language for structuring human language in a
>> > way that allows business analysts, developers and testers to define
>> > features of an application.
>> >
>> > Some computer languages have tools available to developers to convert
>> >
>> > Gherkin to an outline of a computer program. The following meaningless
>> >
>> > example shows the structure. This uses PHP's Behat to convert Gherkin
>> >
>> > to PHP:
>> >
>> > Feature: test
>> >
>> > Background: given this is a test # features/test.feature:3
>> >
>> > Scenario: testing of app # features/test.feature:5
>> > When i run something
>> > Then it passes
>> >
>> > 1 scenario (1 undefined)
>> > 2 steps (2 undefined)
>> > 0m0.17s (9.41Mb)
>> >
>> > --- FeatureContext has missing steps. Define them with these snippets:
>> >
>> > /**
>> > * @When i run something
>> > */
>> > public function iRunSomething()
>> > {
>> > throw new PendingException();
>> > }
>> >
>> > /**
>> > * @Then it passes
>> > */
>> > public function itPasses()
>> > {
>> > throw new PendingException();
>> > }
>> >
>> > It is the feature context that forms the basis of generating
>> > automated acceptance tests from the features specified in
>> >
>> > Gherkin. The developer then fills in the gaps with code that
>> > drives the tests. In PHP web development this is a tool like
>> > Mink that can drive various headless web browsers.
>> >
>> > Automatic code generation for Vala
>> > ----------------------------------
>> > I can think of two approaches to generation code. I have
>> > tried neither.
>> >
>> > The first is to use libvala to generate a Vala AST then output
>> > the AST. Potentially libvala could be modified to generate a
>> >
>> > Genie version of the AST. This appeals to me.
>> >
>> > The other approach would be similar to Valadoc:
>> >
>> > https://git.gnome.org/browse/valadoc/tree/src/libvaladoc/api/formalparameter.vala#n131
>> >
>> > Code generation could also be useful for anyone wanting to
>> >
>> > develop a tool similar to RSpec. So a common approach using libvala
>> > may be helpful. I think Anjuta CTags also uses libvala for
>> >
>> > autosuggestion of function names etc. See:
>> >
>> > https://github.com/GNOME/anjuta/blob/master/plugins/symbol-db/anjuta-tags/ctags-visitor.vala
>> >
>> > Acceptance Testing Drivers
>> > --------------------------
>> > This is probably the hardest part given the wide range of
>> > interfaces available.
>> >
>> > Gherkin is from Cucumber written in Ruby with web application
>> > development in mind. So I think most tools there use web
>> >
>> > interfaces. In the Vala world this could be done with libsoup
>> > for a text analysis of the web interface, but also embedding
>> > Webkit or Gecko which also allows Javascript to be tested.
>> >
>> > Vala is often used for desktop GUI development. So Linux
>> > Desktop Testing Project ( http://ldtp.freedesktop.org/wiki/ )
>> > using Assistive Technology Service Provider Interface (
>> >
>> >
>> > https://en.wikipedia.org/wiki/Assistive_Technology_Service_Provider_Interface
>> >  ) may be relevant.
>> >
>> > Of course software is also developed for technical users. So
>> > there are potentially command line interfaces, D-Bus interfaces, shared
>> > library interfaces and so on to cater for.
>> >
>> > For command line interfaces I'm starting to think GLib's
>> > trap_subprocess may be useful:
>> >
>> > http://valadoc.org/#!api=glib-2.0/GLib.Test.trap_subprocess
>> > I'm trying to write functional tests for Genie, but some
>> >
>> > features need to stop the compilation process. e.g. attempting
>> > to override a protected method in a class. The test should
>> >
>> > trap the error from valac and make sure it matches the
>> >
>> > expected error.
>> >
>> >
>> > Test Output
>> > -----------
>> > This is probably moving away from specification by example
>> > with Gherkin and moving towards unit testing. Specifically
>> > it's about my experience with GLib testing framework reports.
>> >
>> > Each test can output the results as TAP (Test Anything Protocol)
>> > by using the --tap switch. I would recommend TAP because it
>> > is processed more easily by a lot of tools.e.g. Jenkins build
>> > server.
>> >
>> >
>> > In the past I have done unit tests using a script such as:
>> >
>> > #/bin/sh
>> >
>> > tests="arrays_multiline
>> > variables_declarations
>> > variables_type_inference"
>> >
>> > # Build test binaries
>> > for test in $tests
>> > do
>> > valac $test.gs
>> > done
>> >
>> > # Run test binaries
>> > gtester --keep-going -o results.xml $tests
>> >
>> > # Fix missing info section from results - see
>> > https://bugzilla.gnome.org/show_bug.cgi?id=668035
>>
>> >
>> > info="\n\nUnknown\nUnknown\n\n"
>> > sed -i 's||'$info'|g' results.xml
>> >
>> > # Generate HTML report
>> > gtester-report results.xml > report.html
>> >
>> >
>> > I have not figured out a convenient way to get the output as TAP,
>> >
>> > although a script for automake is available:
>> > https://git.gnome.org/browse/glib/tree/tap-driver.sh
>>
>> >
>> > Unit Test of Binaries
>> > ---------------------
>> > Vala and Genie produce binaries of course.
>> >
>> > So far I have produced a test binary that is a Position
>> > Independent Executable (
>> >
>> > https://securityblog.redhat.com/2012/11/28/position-independent-executables-pie/
>> > ) that has all the symbols in the dynamic table. This
>> > allows each unit test to treat the test binary as a
>> >
>> > shared object to it can test individual functions, but also
>> > be run as an executable for functional testing.
>> >
>> > I haven't figured out how to do this for a production binary.
>> > This would probably a static build so the production binary has
>> > the unit tests aggregated after it in memory and the linker
>> > should use the symbol table and not the dynamic symbol table.
>> >
>> > For a test binary you may also want to include the --debug
>> > flag in Valac to include Vala filenames. I think this was tried
>> >
>> > for code coverage reports with Valum - see
>> >
>> > https://coveralls.io/builds/4147345 for example. Not sure of the results.
>> >
>> >
>> > Vala Bugs to be Aware Off
>> > -------------------------
>> > May be of interest:
>> > https://bugzilla.gnome.org/show_bug.cgi?id=704072
>> > https://bugzilla.gnome.org/show_bug.cgi?id=597999
>> > https://bugzilla.gnome.org/show_bug.cgi?id=739725
>> >
>> > Hope all this helps frame any work you may do on Vala
>> > testing.
>> >
>> > All the best with it,
>> >
>> > Al
>> >
>>
>>
>>
>> --
>> Chris Daley
>> Pacific Northwest
>>
>> e: chebiza...@gmail.com
>> w: http://chrisdaley.biz
>> m: +1601 980 1249
>>
>> s: chebizarro
>> tw: chebizarro
>> tz: PDT
>> _______________________________________________
>> vala-list mailing 
>> listvala-list@gnome.orghttps://mail.gnome.org/mailman/listinfo/vala-list
>>
>>


-- 
Chris Daley
Pacific Northwest

e: chebiza...@gmail.com
w: http://chrisdaley.biz
m: +1601 980 1249
s: chebizarro
tw: chebizarro
tz: PDT
_______________________________________________
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to