如何在 Python 环境中测试目标代码。输入首选测试用例

Posted

技术标签:

【中文标题】如何在 Python 环境中测试目标代码。输入首选测试用例【英文标题】:How to test object code In Python environment. Inputting a preferred test case 【发布时间】:2019-06-19 01:27:05 【问题描述】:

我正在寻找可行或不可行的程序或建议。

我有使用嵌入式编码器在 MATLAB 环境中编译的源文件或(目标代码)。现在我想把这些源代码带入 Python,并根据输入的测试用例进行代码性能测试。

例如:我的目标代码包含一个逻辑:Like, If int a = 7;诠释 b 8;然后 int c = a+b;

现在我必须使用指定的测试用例测试上述逻辑,才能真正看到我的目标代码正在做它真正设计的用途..

那么,是否有任何程序或材料可供我学习如何将目标代码/源文件导入 Python 并执行测试?

谢谢。

【问题讨论】:

我很难理解你的问题。您在寻找 MATLAB 到 Python 的转译器吗?或者您正在寻找测试用例生成器? 让我们从方程中删除 MATLAB。所以有一堆源文件或源文件计算的目标代码。我需要编写一个测试用例来测试源代码或目标代码中的逻辑。通过使用 Python 环境。我知道我们可以在 Visual Studio 中做到这一点。 ctypes 真的很酷,你可以加载代码并检查,调用它等等......非常冗长 【参考方案1】:

    如果您可以改为在 MATLAB 中编写测试,software-in-the-loop (SIL) with Embedded Coder 让您可以像调用任何其他函数一样从 MATLAB 调用实际生成的代码。将其与MATLAB unit testing frameworks 结合使用,您可以在 MATLAB 中构建自动化测试套件。

    cfg = coder.config('lib');
    cfg.VerificationMode = 'SIL';
    
    codegen foo.m -config cfg ...
    % Runs the generated code
    foo_sil(args); 
    

    Python 为 C 代码提供了多个接口。我尝试过的一个流行的方法是 ctypes:

    https://docs.python.org/3/library/ctypes.html

    您可以使用它来调用生成的代码。

    您可以使用包装器生成器(如 SWIG)将生成的代码与 Python 绑定一起包装。这为生成的代码提供了一个简单的 Python 接口。在此处运行在 Linux 上的示例:

    https://github.com/mathworks/coder-swig

    生成代码、调用 SWIG 以生成 Python 绑定并构建所有内容。然后,您可以从 Python、Java、C# 或任何其他 SWIG 支持的语言调用生成的代码。

【讨论】:

以上是关于如何在 Python 环境中测试目标代码。输入首选测试用例的主要内容,如果未能解决你的问题,请参考以下文章

Python 开源项目的正常结构是啥?运行测试的首选方式是啥? [关闭]

Python交互环境下如何输入代码

在Postman中如何获取环境变量?

FPGA测试的时候需要编写测试模块,即激励模块,在编写测试模块时啥时候需要产生输入激励信号?

0014.Linux环境搭建 Python环境搭建

python 首选定价模型,测试首选价格的波动。