Main Content

matlab.unittest.fixtures.WorkingFolderFixture 클래스

네임스페이스: matlab.unittest.fixtures

임시 작업 폴더를 만들고 변경하기 위한 픽스처(Fixture)

설명

matlab.unittest.fixtures.WorkingFolderFixture는 임시 폴더를 만들고 이 폴더를 현재 작업 폴더로 설정합니다. 테스트에서, 또는 테스트 중인 제품에서 파일을 만들고, 소스 코드나 테스트 폴더 구조에 영향을 주지 않으며 폴더의 내용을 수정할 수 있습니다.

테스트 프레임워크는 픽스처(Fixture)를 설정할 때 현재 폴더를 경로에 추가합니다. 그런 다음 픽스처가 임시 폴더를 만들고, 현재 작업 폴더를 이 임시 폴더로 변경합니다. 테스트 프레임워크는 픽스처를 해제할 때 기본적으로 임시 폴더와 이 폴더의 모든 내용을 삭제합니다. 테스트 프레임워크는 현재 작업 폴더를 이전 상태로 복원합니다.

WorkingFolderFixture 픽스처와 TemporaryFolderFixture 픽스처는 모두 임시 폴더를 만듭니다. 그러나 WorkingFolderFixture는 폴더를 현재 작업 폴더로 설정하기도 합니다.

생성

matlab.unittest.fixtures.WorkingFolderFixture는 임시 작업 폴더를 만들고 임시 작업 폴더로 변경하는 픽스처(Fixture)를 구성합니다.

matlab.unittest.fixtures.WorkingFolderFixture(Name,Value)는 하나 이상의 Name,Value 쌍의 인수로 지정된 추가 옵션을 사용하여 픽스처를 구성합니다. 예를 들어, matlab.unittest.fixtures.WorkingFolderFixture('PreservingOnFailure',true)는 오류 발생 시 임시 폴더를 삭제하지 않는 픽스처를 구성합니다.

입력 인수

모두 확장

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

테스트 실패 후 임시 폴더와 그 내용을 보존하는 설정으로, falsetrue(logical 0이나 1)로 지정됩니다. 기본적으로 이 값은 false입니다. 픽스처(Fixture)를 구성할 때 이 값을 true로 지정할 수 있습니다.

'PreservingOnFailure'true로 지정하고 이 픽스처를 사용는 테스트에 오류가 발생한 경우 테스트 프레임워크는 명령 창에 메시지를 표시하지만 폴더를 삭제하지는 않습니다. 실패에는 검증(Verification), 어설션(Assertion), 치명적 어설션(Fatal Assertion) 가설 검정(Qualification) 실패와 픽스처를 사용하는 테스트 내 uncaught error가 포함됩니다. 임시 폴더와 그 내용을 보존하면 테스트 실패 원인을 조사하는 데 도움이 될 수 있습니다.

데이터형: logical

임시 폴더 이름의 접미사로, 문자형 벡터로 지정됩니다. 이 파라미터의 값은 임시 폴더의 이름에 추가됩니다.

예: WorkingFolderFixture('WithSuffix','_ProductA')

속성

모두 확장

픽스처가 생성하게 되는 폴더의 절대 경로로, 문자형 벡터로 지정됩니다.

테스트 실패 시 임시 폴더와 그 내용을 보존할지에 대한 표시자로, falsetrue로 지정됩니다. 'PreservingOnFailure' 인수를 통해 이름-값 쌍으로 생성자에 이 속성을 설정합니다.

임시 폴더 이름의 접미사로, 문자형 벡터로 지정됩니다. 'WithSuffix' 인수를 통해 이름-값 쌍으로 생성자에 이 속성을 설정합니다.

복사 의미 체계

핸들. 핸들 클래스가 복사 작업에 미치는 영향에 대한 내용은 객체 복사 항목을 참조하십시오.

예제

모두 축소

MATLAB® 경로에 다음 ExampleTest 클래스 정의를 만듭니다.

classdef ExampleTest < matlab.unittest.TestCase
    methods(Test)
        function test1(testCase)
            import matlab.unittest.fixtures.WorkingFolderFixture;
            
            testCase.applyFixture(WorkingFolderFixture);
            
            x = 1:10;
            
            % Save a file in the temporary folder
            save('data.mat','x');
            
            disp(['The temporary working folder: ' pwd])
            ls
        end
    end
end

명령 프롬프트에서 테스트를 실행합니다.

run(ExampleTest);
Running ExampleTest
The temporary working folder: C:\AppData\Local\Temp\tp6ff2cadf_9eed_4e90_88c1_5ff9ee8abb25

.         ..        data.mat  

.
Done ExampleTest
__________

임시 폴더의 이름은 다양합니다.

MATLAB 경로에 다음 ExampleTest2 클래스 정의를 만듭니다.

classdef ExampleTest2 < matlab.unittest.TestCase
    methods(Test)
        function test1(testCase)
            import matlab.unittest.fixtures.WorkingFolderFixture;
            
            f = WorkingFolderFixture('WithSuffix','_ProductA');
            testCase.applyFixture(f);
            
            x = 1:10;
            
            % Save a file in the temporary folder
            save('data.mat','x');
            
            disp(['The temporary working folder: ' pwd])
            ls
        end
    end
end

명령 프롬프트에서 테스트를 실행합니다.

run(ExampleTest2);
Running ExampleTest2
The temporary working folder: C:\AppData\Local\Temp\tp72c6ce7c_a380_4f5e_be3b_4f7191a6cd2c_ProductA

.         ..        data.mat  

.
Done ExampleTest2
__________

임시 폴더의 이름은 다양하지만, _ProductA로 끝납니다.

버전 내역

R2016a에 개발됨