Suponha que, por qualquer motivo, eu me recuse a usar matlab.unittest.TestCase
. Procuro reproduzir a seguinte funcionalidade do Python:
# `utils.py` is in same directory as the test file
# `test_wide_variable` gets used inside or outside of test functions
from utils import test_wide_variable
# gets used inside of test functions
file_wide_variable = [1, 2, 3]
def test_func1():
y = (file_wide_variable, test_wide_variable)
# ...
# ...
test_func1()
# test_func2()
test_func3()
# ...
Tentar
Defina reset_test_params.m
, com
global P
P = struct;
Então, o arquivo de teste se parece com
reset_test_params
P.file_wide_variable = [1, 2, 3];
P.test_wide_variable = load('test_wide_variables.m').test_wide_variable;
test_func1()
% test_func2()
test_func3()
% ...
function test_func1(~)
global P
y = {P.file_wide_variable, P.test_wide_variable};
% ...
% ...
Pergunta
Alguma desvantagem notável com essa abordagem? Em particular, execução simultânea de arquivos? Com Python, é possível executar vários testes ao mesmo tempo no mesmo namespace global (AFAIK), portanto, uma variável global seria proibida.