Das Skript erstellt eine temporäre Verzeichnisstruktur und einen SAS-Datensatz zu Testzwecken. Es werden keine externen Daten oder Daten aus der `SASHELP`-Bibliothek direkt für den Testprozess verwendet. Die Testdaten werden vor Ort generiert.
1 Codeblock
MACRO mf_mkdir / DATA STEP Data
Erklärung : Dieser Codeblock initialisiert eine Makrovariable `root`, die auf ein neues Unterverzeichnis 'top' im temporären Arbeitsverzeichnis (`work`) zeigt. Anschließend wird das Makro `%mf_mkdir` mehrfach verwendet, um eine Hierarchie verschachtelter Verzeichnisse zu erstellen. Eine Libname `test` wird definiert, um auf das tiefste Verzeichnis zu zeigen. Schließlich wird ein Datensatz `ds1` in dieser Bibliothek erstellt, der als Testdaten dient.
Kopiert!
%let root=%sysfunc(pathname(work))/top;
%mf_mkdir(&root)
%mf_mkdir(&root/a)
%mf_mkdir(&root/b)
%mf_mkdir(&root/a/d)
%mf_mkdir(&root/a/e)
%mf_mkdir(&root/a/e/f)
libname test '&root/a/e/f';
data test.ds1;
x=1;
run;
1
%let root=%sysfunc(pathname(work))/top;
2
%mf_mkdir(&root)
3
%mf_mkdir(&root/a)
4
%mf_mkdir(&root/b)
5
%mf_mkdir(&root/a/d)
6
%mf_mkdir(&root/a/e)
7
%mf_mkdir(&root/a/e/f)
8
LIBNAME test '&root/a/e/f';
9
DATA test.ds1;
10
x=1;
11
RUN;
2 Codeblock
MACRO mp_dirlist / MACRO mp_assert
Erklärung : Dieser Block testet das Makro `%mp_dirlist`, indem er es anweist, alle Verzeichnisebenen unter `&root` (mit `maxdepth=MAX`) aufzulisten. Das Makro `%mf_nobs` wird verwendet, um die Beobachtungen im Ausgabedatensatz `work.myTable` zu zählen. `%mp_assert` überprüft, ob die Anzahl der Beobachtungen 6 beträgt, was der Gesamtzahl der erstellten Verzeichnisse entspricht.
Erklärung : Dieser Test ruft `%mp_dirlist` mit `maxdepth=2` auf, was bedeutet, dass nur die Verzeichnisse der ersten beiden Tiefenebenen (ab `&root`) aufgelistet werden sollen. `%mp_assert` wird verwendet, um zu bestätigen, dass der Datensatz `work.myTable2` 5 Beobachtungen enthält, wodurch die Tiefenbegrenzung validiert wird.
Erklärung : Dieser Codeblock testet `%mp_dirlist` mit `maxdepth=0`, was darauf hinweist, dass nur das angegebene Verzeichnis (`&root`) selbst zurückgegeben werden soll. `%mp_assert` überprüft, ob der Datensatz `work.myTable3` 2 Beobachtungen enthält, was das erwartete Verhalten für diese Auflistungstiefe ist (im Allgemeinen das Verzeichnis selbst plus ein Eintrag für Metadaten oder den Parent).
Erklärung : Dieser Test validiert das Verhalten von `%mp_dirlist`, wenn es auf ein leeres Verzeichnis (`&root/b`) angewendet wird. Das Makro `%mp_assert` wird verwendet, um zu überprüfen, ob der Ausgabedatensatz `work.myTable4` keine Beobachtungen enthält, wie es für ein Verzeichnis ohne Unterverzeichnisse oder auflistbare Dateien erwartet wird.
Erklärung : Der letzte Codeblock testet `%mp_dirlist` mit einem Verzeichnispfad, der nicht existiert (`&root/notexisting`). `%mp_assert` wird verwendet, um zu bestätigen, dass der Ausgabedatensatz `work.myTable5` leer ist, was darauf hinweist, dass das Makro ungültige Pfade korrekt behandelt, ohne einen Fehler zu generieren und ein leeres Ergebnis zurückzugeben.
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright 2010-2023 HMS Analytical Software GmbH, http://www.analytical-software.de. Diese Datei ist Teil von SASUnit, dem Unit-Test-Framework für SAS(R)-Programme. Informationen zu Copyright und Nutzungsbedingungen unter der GNU Lesser General Public License finden Sie in der beiliegenden README.md-Datei oder unter https://github.com/HMS-Analytical-Software/SASUnit/wiki/readme/.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.