假设,无论出于何种原因,我拒绝使用matlab.unittest.TestCase
. 我试图重现以下 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()
# ...
试图
定义reset_test_params.m
, 与
global P
P = struct;
然后,测试文件看起来像
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};
% ...
% ...
问题
这种方法有什么明显的缺点吗?特别是并发文件执行?使用Python,我们可以在同一个全局命名空间(AFAIK)中同时运行多个测试,因此全局变量是一个禁忌。