Présentation d'Allure sur la base de la traduction du document officiel.
RSpec
(Ruby) pour plus de commodité.En parlant de frameworks de test, il existe de nombreux outils géniaux disponibles dans différentes langues, tels que JUnit`` RSpec``
jest`` pytest`.
Cependant, de nombreux outils n'ont pas la capacité de générer des rapports de test visuellement étonnants.
Allure le complète avec OSS pour générer des rapports d'exécution de test faciles à comprendre pour tous les membres de l'équipe, indépendamment du langage ou du cadre. est.
Voir c'est croire. Ouvrons le rapport de démonstration (https://demo.qameta.io/allure/).
Vous pouvez voir que le rapport d'exécution de test peut être visualisé graphiquement et interactivement sous de nombreux angles.
Encore une fois, le langage et le cadre ne sont pas pertinents pour ces générations. Vous pouvez utiliser le code de test actuellement en fonctionnement tel qu'il provient de JUnit
, RSpec
, jest
ou pytest
.
Allure est basé sur la sortie de la «xUnit» générale (terme collectif pour les cadres de tests unitaires) plus des données supplémentaires.
Le rapport de test est généré au cours des deux étapes suivantes.
** 1. Exécution du test **
Lorsque divers frameworks de test exécutent des tests, une bibliothèque légère appelée ʻadapter` génère des informations sur les tests exécutés au format XML ou JSON.
L'adaptateur est officiellement fourni pour «Java», «PHP», «Ruby», «Python», «Scala» et «C #», et chacun prend en charge les principaux frameworks de test.
** 2. Génération de rapports **
Une fois le test terminé, un rapport au format HTML sera généré sur la base des données générées.
La génération de rapport peut être effectuée à partir de l'outil CLI.
Exemples d'utilisation par divers frameworks
Pour plus de commodité, cet article utilise RSpec comme exemple, mais de nombreux langages et frameworks peuvent être suivis dans les mêmes étapes.
Installez ʻallure` lui-même, un outil CLI pour générer des rapports. Puisque nous utilisons un Mac cette fois, installez-le avec brew.
$ brew install allure
C'est OK si vous pouvez confirmer la version.
$ allure --version
2.13.0
$ allure --version
No Java runtime present, requesting install.
Si vous obtenez quelque chose comme ça, vous devez inclure le runtime Java.
Cette fois, nous allons préparer un test unitaire qui vérifie le comportement de la classe Calculator
comme suit.
La classe Calculator
est une classe qui peut ajouter et soustraire en fonction de la valeur initiale. Un seul est intentionnellement défini pour que le test échoue.
describe Calculator do
subject { described_class.new(initial_value) }
describe '#ajouter un ajout' do
context 'Lorsque la valeur initiale est 0' do
let(:initial_value) { 0 }
it 'Ajoutez 10 pour obtenir 10 en retour' do
expect(subject.add(10)).to eq 10
end
end
context 'Lorsque la valeur initiale est 5' do
let(:initial_value) { 5 }
it 'Ajoutez 10 pour obtenir 15 en retour' do
expect(subject.add(10)).to eq 15
end
end
end
describe '#sous soustraction' do
context 'Lorsque la valeur initiale est 0' do
let(:initial_value) { 0 }
#Test d'automne
it 'Soustrayez 10 pour renvoyer 0' do
expect(subject.sub(10)).to eq 0
end
end
context 'Lorsque la valeur initiale est 30' do
let(:initial_value) { 30 }
it 'Soustrayez 10 pour renvoyer 20' do
expect(subject.sub(10)).to eq 20
end
end
end
end
Lorsque rpsec est exécuté normalement, c'est comme suit
$ bundle exec rspec spec/sample_spec.rb -f d
Calculator
#ajouter un ajout
Lorsque la valeur initiale est 0
Ajoutez 10 pour obtenir 10 en retour
Lorsque la valeur initiale est 5
Ajoutez 10 pour obtenir 15 en retour
#sous soustraction
Lorsque la valeur initiale est 0
Soustrayez 10 pour renvoyer 0(FAILED - 1)
Lorsque la valeur initiale est 30
Soustrayez 10 pour renvoyer 20
Failures:
1) Calculator#sous soustraction Lorsque la valeur initiale est 0, la soustraction de 10 renvoie 0.
Failure/Error: expect(subject.sub(10)).to eq 0
expected: 0
got: -10
(compared using ==)
# ./sample_spec.rb:42:in `block (4 levels) in <top (required)>'
Finished in 0.11199 seconds (files took 2.06 seconds to load)
4 examples, 1 failure
Failed examples:
rspec ./sample_spec.rb:41 # Calculator#sous soustraction Lorsque la valeur initiale est 0, la soustraction de 10 renvoie 0.
Lors de l'exécution de Rspec, utilisez l'adaptateur Allure pour Ruby pour générer des données pour la création de rapports.
L'adaptateur pour RSpec utilise allure-rspec.
Cette fois, ajoutez ce qui suit au Gemfile et installez-le.
gem "allure-rspec"
Chargez l'adaptateur avec spec_helper
require "allure-rspec"
Spécifiez l'adaptateur comme formateur au moment de l'exécution. Cette fois, rien n'est émis vers la sortie standard.
$ bundle exec rspec spec/sample_spec.rb -f AllureRspecFormatter
Par défaut, le répertoire reports
est créé et les données de rapport sont générées avec la structure suivante.
$ tree reports/
reports/
└── allure-results
├── 4ee53de0-790a-0138-ab5e-3d13be3ed9ba-container.json
├── 4ee54750-790a-0138-ab5e-3d13be3ed9ba-container.json
├── 4ee54a80-790a-0138-ab5e-3d13be3ed9ba-container.json
├── 4ee64530-790a-0138-ab5e-3d13be3ed9ba-result.json
├── 4ee7fad0-790a-0138-ab5e-3d13be3ed9ba-container.json
├── 4ee80710-790a-0138-ab5e-3d13be3ed9ba-result.json
├── 4ee83ae0-790a-0138-ab5e-3d13be3ed9ba-container.json
├── 4ee83e90-790a-0138-ab5e-3d13be3ed9ba-container.json
├── 4ee84860-790a-0138-ab5e-3d13be3ed9ba-result.json
├── 4eefe9b0-790a-0138-ab5e-3d13be3ed9ba-container.json
└── 4eeff800-790a-0138-ab5e-3d13be3ed9ba-result.json
1 directory, 11 files
Utilisez la sortie de données de rapport dans la section précédente pour générer un rapport avec la commande ʻallure`.
La sous-commande serve
vous permet de générer un rapport localement et d'y accéder dans votre navigateur.
$ allure serve -h 0.0.0.0 ./reports/allure-results/
Generating report to temp directory...
Report successfully generated to /var/folders/3_/r5h56zzn1130yr7vkpjftqpw0000gp/T/15980098365829452874/allure-report
Starting web server...
2020-05-16 04:02:58.509:INFO::main: Logging initialized @3541ms to org.eclipse.jetty.util.log.StdErrLog
Server started at <http://0.0.0.0:57717/>. Press <Ctrl+C> to exit
Dans l'exemple ci-dessus, lorsque j'ai accédé à "0.0.0.0: 57717", j'ai pu confirmer que le rapport a été généré avec succès.
Comme le titre de cet article, il est très polyvalent et polyvalent car il ne dépend pas du langage et du framework, j'ai donc eu l'impression que ce serait trop pour un usage individuel.
Cela peut être une bonne idée de concevoir un test en supposant Allure dès le début, mais il semble difficile de mettre du code de test existant à moins qu'il ne soit bien structuré.