Hinzufügen eines neuen Befehls zur CoE-CLI-Entwicklung (Veraltet)

Note

Die CoE CLI ist veraltet, und es werden keine neuen Features hinzugefügt. Probleme werden nicht mehr überprüft oder behoben.

Wenn Sie ein potenzielles Sicherheitsproblem identifizieren, melden Sie es bitte an die Microsoft Security Response Center.

Zusätzlich zum Power Platform Admin Center, erwägen Sie die Microsoft Power Platform CLI, Power Platform API, Power Platform Inventory API und die Power Platform for Admins V2 connector.

Um einen neuen Beispielbefehl hinzuzufügen, können Sie den folgenden Befehl verwenden, um die anfängliche Einrichtung des TypeScript-Befehls und des Jest JavaScript-Testframework-Einheitentests als Vorlage zu erstellen.

cd coe-cli
coe cli add -n sample

Verbinden des Befehls mit der Befehlszeile

Nachdem Sie den Einheitentest für Ihren neuen Befehl abgeschlossen haben, führen Sie diese Aufgaben aus:

  1. Überprüfen Sie https://www.npmjs.com/package/commander auf Befehle, Optionen.

  2. Aktualisieren Sie commands.ts, um einen neuen Befehl oder Unterbefehl aufzunehmen.

    • Importieren Sie Ihre Dateien am Anfang der Datei.

      import { SampleArguments, SampleCommand} from './sample';
      
    • Fügen Sie eine Funktion für die Scheininjektion hinzu.

      createSampleCommand: () => SampleCommand
      
    • Erstellen Sie den Befehl in der Konstruktorfunktion.

      this.createSampleCommand = () => new SampleCommand
      
    • Fügen Sie die Funktion hinzu.

       AddSampleCommand(program: commander.Command) {
           var run = program.command('sample')
               .description('A new sample command')
               .option('-c, --comment <comment>', 'The comment for the command')
               .action(async (options: any) : Promise<void> => {
                   let args = new SampleArguments();
                   args.comment = options.comment;
                   let command = this.createSampleCommand();
                   await command.execute(args)
               });
       }
      
    • Registrieren Sie den neuen Befehl in der init-Funktion.

      this.AddSampleCommand(program);
      
  3. Aktualisieren Sie commands.spec.ts, um die Einheitentests einzuschließen.

    • Integrieren Sie einen Verweis auf den Befehl.

      import { SampleCommand } from '../../src/commands/sample'
      
    • Fügen Sie eine Reihe von Jest-Tests hinzu.

      describe('Sample', () => {
          test('Execute', async () => {
              // Arrange
              var commands = new CoeCliCommands();
              let mockSampleCommand = mock<SampleCommand>(); 
      
              commands.createSampleCommand = () => { return mockSampleCommand }
      
              mockSampleCommand.execute.mockResolvedValue()
      
              // Act
              await commands.execute(['node', 'commands.spec', 'sample', '-c', 'Some comment'])
      
              // Assert
              expect(mockSampleCommand.execute).toHaveBeenCalled()
          })
      });
      
  4. Führen Sie die Einheitentests mit den neuen Änderungen aus.

    npm run test