How to access and change variables in workspace

4 Ansichten (letzte 30 Tage)
tommsch
tommsch am 30 Nov. 2020
Bearbeitet: tommsch am 30 Nov. 2020
I need to access variables in a workspace which are in a workspace down the stack. And I need to do this in a function - Thus, start the debugger, select the workspace manually and change the variable is not the thing I want to do. Thus, I need to do something like
evalin( 'caller', evalin( 'caller', evalin( ..., variablename) ) ... ).
I am open for hacky solutions too.
Furthermore: Please do not tell me any of the following: "Do not use eval", "Do not use global variables", "Don't do this" etc.. I am not a novice programmer (and hate that in similar questions the answer is never given, but only told that one should not do it).
  7 Kommentare
Steven Lord
Steven Lord am 30 Nov. 2020
This is for a testing framework, in particular for testing legacy code.
Are you building this on top of the testing framework included in MATLAB?
How exactly is retrieving data from workspaces lower in the stack going to help with your testing framework? Your test functions are going to call the software under test. For it to have access to variables from the subfunctions you'd have to have the test function executing at the same time as the subfunction and have that test function access the callee's workspace not the caller's.
tommsch
tommsch am 30 Nov. 2020
Bearbeitet: tommsch am 30 Nov. 2020
I am not fully satisfied with the Matlab testing framework, since I think its quite verbose and does lack some important features, expecially for testing scientific software. Thus, I am mostly writing extra assertions on top of the matlab framework. (Edit: assertition framework would thus be the better name)
The thing I want to do is tracing.

Melden Sie sich an, um zu kommentieren.

Antworten (0)

Kategorien

Mehr zu Testing Frameworks finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by