Sobre o projeto
Swift Testing é um pacote de testes de código aberto para Swift, desenvolvido como parte do projeto Swift.org. Ele fornece APIs expressivas baseadas em macros, projetadas para facilitar a escrita de testes para código Swift.
Principais capacidades descritas no README:
- API clara e expressiva: A macro #expect usa expressões e operadores Swift e captura os valores avaliados, para que as falhas mostrem o que deu errado. Uma macro #require também é mostrada para desempacotar valores opcionais.
- Comportamentos de teste personalizados: Traits podem ser anexadas a testes ou suítes para descrever condições de tempo de execução, como habilitar um teste somente quando uma feature flag está definida ou limitar testes a certas versões de sistema operacional. Traits também podem especificar limites de tempo de execução para integração contínua.
- Organização flexível: Testes podem ser agrupados em hierarquias, marcados com tags para gerenciamento entre suítes e receber nomes descritivos.
- Cobertura e execução escaláveis: Testes parametrizados executam o mesmo teste sobre uma sequência de valores. Os testes se integram ao Swift Concurrency e são executados em paralelo por padrão.
- Suporte multiplataforma: Swift Testing está incluído nas toolchains Swift oficialmente suportadas para plataformas Apple, Linux e Windows. FreeBSD está listado como suportado, enquanto Wasm, Android e OpenBSD são experimentais. O README inclui uma tabela de suporte com níveis de qualificação.
- Compatibilidade com XCTest: Testes XCTest existentes podem ser executados lado a lado com testes Swift Testing, permitindo migração incremental.
A documentação está disponível no Swift Package Index, e o pacote está incluído na toolchain Swift 6 e no Xcode 16, portanto não precisa ser adicionado como dependência de pacote. Compilar a partir do código-fonte no branch main requer uma toolchain de snapshot de desenvolvimento recente do branch main.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.