Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Před důvěrou v diagnózu zkontrolujte verzi

Vytiskne verzi, kterou odvozují všechny ostatní plochy, a ukáže argument, který odmítne.

zaručeno Začínáme a převzetízákladníoperátorpřispěvateljen pro čtení

Situace

Diagnóza z jednoho stroje se porovnává s repozitářem na jiném a nikdo neví, zda oba spustily tentýž nástroj.

Scénář

setup: bare
given:
  - 'an empty repository; nothing installed'
steps:
  - id: print
    run: ['version']
    note: 'the one string the projections, the ledger and the site derive their version from'
    expect:
      exit: 0
      stdout_contains: ['^majordomus [0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)\.[0-9]+)?$']
  - id: refuse
    run: ['version', '--no-such-option']
    note: 'an argument the command does not know is a usage error, never ignored'
    expect:
      exit: 2
      stdout_contains: ['unknown option --no-such-option']
then:
  - 'the version needs no repository and no installation'
  - 'a usage error exits 2, as the exit-code contract says'

Výsledek

version vypíše verzi a nic jiného, odkudkoli, a odmítne argument, kterému nerozumí, místo aby předstíral, že rozumí.

Scénář

Provedeno proti skutečnému nástroji v repozitáři připraveném pomocí bare, při každém generování tohoto webu. To, co následuje, není popis toho, co by se mělo stát; je to to, co se stalo.

dáno

  • prázdný repozitář; nic nenainstalováno

kdy

  1. 1majordomus version
  2. 2majordomus version --no-such-option

pak

  • verze nepotřebuje repozitář ani instalaci
  • chyba použití končí kódem 2, jak říká kontrakt návratových kódů

Co nástroj udělal

Důkaz běhu, ze kterého byla tato stránka vygenerována: pass, 2 kroky. Výstup je normalizován: cesta repozitáře, časová razítka, id a doby trvání jsou zástupné hodnoty; nic dalšího se neupravuje.

Testováno v test/cases/94_use_cases.sh, který spouští každý scénář a odmítne krok, jehož zaznamenaný výstup není tím, co vyprodukoval.

  1. jediný řetězec, ze kterého projekce, ledger a web odvozují svou verzi

    majordomus 1.0.0-alpha.4
    • exit 0
    • stdout_contains /^majordomus [0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc)\.[0-9]+)?$/
  2. argument, který příkaz nezná, je chyba použití, nikdy se neignoruje

    majordomus: version: unknown option --no-such-option
    • exit 2
    • stdout_contains /unknown option --no-such-option/

Proč to nástroj ví

Řetězec od této stránky ke kódu: případ užití jmenuje příkazy, pravidla a tvrzení; každé pravidlo se dispatchuje z registru a každé tvrzení jmenuje test, který ho dokazuje; scénář výše provedl příkazy. Nic v tomto řetězci není text o záměru.

Uplatněné záruky

Související případy užití

Vypočteno z toho, co sdílejí: tvrzení, pravidla, příkazy, kategorie, aplikace. Tento seznam nikdo neudržuje.

Okamžiky, na které to odpovídá

Prohledává názvy a popisy všech stránek, které tento web publikuje.