Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

feat: add custom parameter based on a map of values

Aperta
#345 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@daantimmer ci sta già lavorando.

Dal 23/10/2026.

  • #417 di @daantimmer — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
cpp
Ambito
testing-qa

Direzione di ricerca

Inizia dalla definizione esistente della macro PARAMETER e segui come vengono implementati il relativo comportamento di regex e conversione. Definisci il comportamento dei parametri basato su map descritto nell’issue, inclusa la trasformazione delle chiavi della map in una regex corrispondente e la ricerca della stringa catturata nella map; il lavoro è completato quando le map di tipo enum possono essere utilizzate come parametri personalizzati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Currently the PARAMETER macro only accepts a regex string. But there are quite some occasions where a custom parameter is nothing more than mapping a string to values. This can for example be used to create a custom parameter based on enums:

// somewhere
enum class State{
 connected,
 disconnected,
 standby,
 shutdown
}

namespace{
  const std::map<std::string, State> stateMap{
   {"connected", State::connected},
   {"disconnected", State::disconnected},
   {"standby", State::standby},
   {"shutdown", State::shutdown},
  };
}

PARAMETER_MAP("state", stateMap, true);

// PARAMETER_MAP does the heavy lifting of transforming all the keys from the provided
// map in to a regex that would look like: `(connected|disconnected|standby|shutdown)`
// it also takes care of creating a simple implementation that takes a string
// and uses the .at function on the provided map using the captured argument
// it could potentially look something like this (pseudo-code-ish)
#define PARAMETER_MAP(name, map, snippet) \
PARAMETER(decltype(map)::value_type, (name, transformKeysToRegex(map), snippet), (const std::string& key)) \
{ \
  return map.at(key); \
}
Lingua principale
C++
Stelle
22
Fork
7
Merge medio
1g 17h
PR unite (30g)
15

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di philips-software/amp-cucumber-cpp-runner

Tutte le issue di philips-software/amp-cucumber-cpp-runner

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.