What is FRUIT?
FRUIT is FORTRAN Unit Test Framework, written in FORTRAN 95.
FRUIT has assertion, fixture, setup, teardown, report, spec, driver generation and uses Rake (Ruby build utility) as build tool.
FRUIT core is written in FORTRAN , so one can use it without need of installing any additional software.
Requirements
FRUIT (FORTRAN only)
- Fortran compiler (eg. gfortran)
- fruit.f90 source file: https://github.com/mortele/FRUIT/blob/master/src/fruit.f90
FRUIT (FORTRAN + Ruby)
- Fortran compiler (eg. gfortran)
- fruit.f90 source file: https://github.com/mortele/FRUIT/blob/master/src/fruit.f90
- fruit_processor_gem files: https://github.com/mortele/FRUIT/tree/master/fruit_processor_gem
- Ruby
- Rake
FRUIT Fortran only vs FRUIT Fortran + Ruby
FRUIT Fortran only
- Good for small project
- Good if you do not need setup and teardown subroutines (otherwise you need to create and maintain additional basket file)
- You will need to reate test driver on your own
FRUIT Fortran + Ruby
- Good for complex projects
- Good if you need setup and teardown subroutines
- Needs Ruby interpreter
- You will need only to point test and source files in CMakeLists files
Types of subroutines
- assert - a state of belief. If assert fails your test will also fail (eg. assert_equals(1,2) will fail because 1!=2). Assert is core root of all unit tests.
- setup - subroutine called before every test subroutine. It can be used to initialize variables.
- teardown - subroutine called after every test subroutine. It can be used to clean after test.
Avaivable subroutunes
subroutines: assert_equals assert_not_equals assert_true assert_false setup teardown !examples with different types: !integers and reals assert_equals(a,b) assert_equals(a,b,"Message when assert fails") assert_not_equals(a,b) assert_not_equals(a,b,"Message when assert fails") !NOTE: "Message when assert fails" is optional !reals with tolerance assert_equals(a,b,tolerance) !booleans and expressions assert_true(expression) assert_false(expression) !strings assert_equals("abc","abc") assert_not_equals("abc","abc")
The scientific work is published for the realization of the international project co-financed by Polish Ministry of Science and Higher Education in 2019 from financial resources of the program entitled "PMW"; Agreement No. 5040/H2020/Euratom/2019/2
This work has been carried out within the framework of the EUROfusion Consortium and has received funding from the Euratom research and training programme 2014–2020 under grant agreement No 633053. The views and opinions expressed herein do not necessarily reflect those of the European Commission or ITER