build
Class: matlabtest.compiler.TestCase
Namespace: matlabtest.compiler
Syntax
Description
builds the deployed code artifact by using MATLAB®
Compiler SDK™ with the type buildResults = build(testCase,functionToBuild,artifactType)artifactType from the MATLAB function functionToBuild in the equivalence test case
testCase.
builds the deployed code artifact with the options and type specified by
buildResults = build(testCase,buildOptions)buildOptions.
preserves the build folder and its contents after a test failure.buildResults = build(___,PreservingOnFailure=true)
Input Arguments
Test case, specified as a matlabtest.compiler.TestCase object.
MATLAB function to build, specified as a string vector, character vector, cell vector of character vectors, function handle, or cell vector of function handles.
You can specify one or more functions using these forms:
Filename — The method uses the function in the specified file. You can specify the filename as a path relative to the current folder or an absolute path. The filename must have a
.mextension. Specify multiple filenames as a string vector or cell vector of character vectors.Function name — The method searches for the function along the MATLAB search path. Specify multiple function names as a string vector or cell vector of character vectors. (since R2026a)
Function handle — The method searches for the function along the MATLAB search path. Specify multiple function handles using a cell vector. (since R2026a)
Example: "foo.m" (name of a file in the current
folder)
Example: ["foo.m" "C:\work\bar.m"] (two filenames)
Example: ["foo" "bar"] (two function names)
Example: {@foo,@bar} (two function handles)
Artifact type to build, specified as "dotNETAssembly",
"javaPackage", "pythonPackage",
"productionServerArchive", or
"cppSharedLibrary".
Build options, specified as one of these objects:
compiler.build.DotNETAssemblyOptions(MATLAB Compiler SDK)compiler.build.JavaPackageOptions(MATLAB Compiler SDK)compiler.build.PythonPackageOptions(MATLAB Compiler SDK)compiler.build.ProductionServerArchiveOptions(MATLAB Compiler SDK) (since R2024a)compiler.build.CppSharedLibraryOptions(MATLAB Compiler SDK) (since R2024b)
Output Arguments
Build results, returned as a compiler.build.Results (MATLAB Compiler SDK) object.
Examples
This example shows how to generate a Python® package from MATLAB source code and test for equivalence by using MATLAB Compiler SDK.
The function makesquare generates an
n-by-n matrix:
function y = makesquare(x) y = magic(x); end
This class definition file defines an equivalence test case that inherits from matlabtest.compiler.TestCase. The test case in the methods block defines a test case that:
Builds the Python package from the
makesquarefunctionExecutes the Python package with input set to
5Verifies the execution of the Python package against the execution of the MATLAB function
makesquarewith the same input
classdef tDeployment < matlabtest.compiler.TestCase methods(Test) function pythonEquivalence(testCase) buildResults = build(testCase,@makesquare, ... "pythonPackage"); executionResults = execute(testCase,buildResults,{5}); verifyExecutionMatchesMATLAB(testCase,executionResults); end end end
Run the pythonEquivalence
test.
runtests("tDeployment", ... ProcedureName="pythonEquivalence")
Running pythonEquivalence
..
Done pythonEquivalence
__________
ans =
TestResult with properties:
Name: 'tDeployment/pythonEquivalence'
Passed: 1
Failed: 0
Incomplete: 0
Duration: 93.1237
Details: [1×1 struct]
Totals:
1 Passed, 0 Failed, 0 Incomplete.
93.1237 seconds testing time.This example shows how to generate a Python package with additional build options from MATLAB source code and test for equivalence by using MATLAB Compiler SDK.
The function makesquare generates an
n-by-n matrix:
function y = makesquare(x) y = magic(x); end
This class definition file defines an equivalence test case that inherits from
matlabtest.compiler.TestCase. The test case in the
methods block defines a test case that:
Defines a
compiler.build.PythonPackageOptions(MATLAB Compiler SDK) object that specifies the function to build, the package name, and provides additional files to include in the packageBuilds the Python package from the build options object
Executes the Python package with input set to
5Verifies the execution of the Python package against the execution of the MATLAB function
makesquarewith the same input
classdef tDeployment < matlabtest.compiler.TestCase methods(Test) function pythonEquivalence(testCase) buildOpts = compiler.build.PythonPackageOptions( ... "makesquare.m"); buildOpts.PackageName = "PackageUnderTest"; buildOpts.AdditionalFiles = "makesquareData.mat"; buildResults = build(testCase,buildOpts); executionResults = execute(testCase,buildResults,{5}); verifyExecutionMatchesMATLAB(testCase,executionResults); end end end
Run the pythonEquivalence
test.
runtests("tDeployment", ... ProcedureName="pythonEquivalence")
Running pythonEquivalence
..
Done pythonEquivalence
__________
ans =
TestResult with properties:
Name: 'tDeployment/pythonEquivalence'
Passed: 1
Failed: 0
Incomplete: 0
Duration: 93.1237
Details: [1×1 struct]
Totals:
1 Passed, 0 Failed, 0 Incomplete.
93.1237 seconds testing time.This example shows how to generate a Python package from MATLAB source code and test for equivalence by using MATLAB Compiler SDK.
The function makesquare generates an
n-by-n matrix and the function
myAdd takes two inputs and adds them together:
function y = makesquare(x) y = magic(x); end
function y = myAdd(a,b) y = a + b; end
This class definition file:
Builds a packaged that contains
makesquareandmyAddSaves the build results object if the test fails
Verifies the result with an absolute tolerance
classdef tDeployment < matlabtest.compiler.TestCase methods(Test) function pythonEquivalence(testCase) functionsToBuild = {@makesquare,@myAdd}; buildResults = build(testCase,functionsToBuild, ... "pythonPackage",PreservingOnFailure=true); preserveOnFailure=true; executionResults = execute(testCase,buildResults,{5}, ... "makesquare",PreservingOnFailure=preserveOnFailure); verifyExecutionMatchesMATLAB(testCase,executionResults, ... AbsTol=0.0001); end end end
Run the pythonEquivalence
test.
runtests("tDeployment", ... ProcedureName="pythonEquivalence")
Running pythonEquivalence
..
Done pythonEquivalence
__________
ans =
TestResult with properties:
Name: 'tDeployment/pythonEquivalence'
Passed: 1
Failed: 0
Incomplete: 0
Duration: 93.1237
Details: [1×1 struct]
Totals:
1 Passed, 0 Failed, 0 Incomplete.
93.1237 seconds testing time.Limitations
You cannot generate deployed code artifacts or test them for equivalence in MATLAB Online™.
Version History
Introduced in R2023aYou can specify the MATLAB functions to build using function names or function handles in addition to filenames.
Build deployable C++ shared libraries by specifying the artifactType input argument as "cppSharedLibrary" or by
specifying the buildOptions input argument as a compiler.build.CppSharedLibraryOptions (MATLAB Compiler SDK) object.
Build deployable archives for MATLAB
Production Server™ or other microservices by specifying the artifactType input argument as "productionServerArchive" or
by specifying the buildOptions input argument as a compiler.build.ProductionServerArchiveOptions (MATLAB Compiler SDK) object.
See Also
Classes
Functions
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)