Borrar filtros
Borrar filtros

How to test that a script is running correctly ?

11 visualizaciones (últimos 30 días)
Matteo Bonhomme
Matteo Bonhomme el 16 de Dic. de 2022
Editada: Jan el 16 de Dic. de 2022
Hello
I'm trying to implement an acceptance test for the matlab code I'm working on with other people. For this I would like to test some script to be sure that even after some change they're still working.
I saw that there's the functiun runtests but it only test that functiuns give the good output, it doesnt check for script.
I tried this but then all of the script are in the same workspace and they might interact with each other when we don't want. Also some script have "clc" or "clear all" in them wich also causes some issue.
try
fprintf("testing %s\n",filename)
[~] = evalc(filename);
fprintf("%s run properly\n",filename)
catch
fprintf("%s didn't run properly\n",filename)
end
The ideal situtation would be to be able to run the script in another session and just get the information that the script completed without displaying any of the output

Respuesta aceptada

Jan
Jan el 16 de Dic. de 2022
Editada: Jan el 16 de Dic. de 2022
The is no way to prove the correct working of scripts. The danger of interferences between scripts, e.g. by clear all commands, is high and the number of possible problems is infinite. Therefore productive work use functions only and avoid scripts strictly.
Functions encapsulate the internal implementation, such that interferences with the outside can happen over the defined input and output arguments only. Therefore well defined unit-testing is possible, which compares the behavior of a function for valid and invalid input.
Automatic testing of scripts is not possible, because the scripts can and will destroy the test environment of the calling function. Especially if you collaborate with a team, scripts are a shot inyour knee.

Más respuestas (0)

Categorías

Más información sobre Testing Frameworks en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by