79815094

Date: 2025-11-09 23:57:47
Score: 1
Natty:
Report link

🐞 مشكلة: فشل إنشاء تقرير Cucumber

عند محاولة توليد تقرير باستخدام maven-cucumber-reporting، تظهر الرسالة التالية:

net.masterthought.cucumber.ValidationException: No report file was added!

📌 السبب المحتمل

هذه الرسالة تعني أن الـ plugin لم يجد أي ملف JSON صالح لتوليد التقرير منه. غالبًا ما يكون السبب:

- عدم تنفيذ اختبارات Cucumber قبل مرحلة verify

- عدم إنشاء الملف target/cucumber.json بسبب فشل أو غياب الاختبارات

- مسار غير صحيح أو مفقود في إعدادات pom.xml

✅ الحلول المقترحة

1. تنفيذ الاختبارات قبل توليد التقرير

`bash

mvn clean test

mvn verify

`

\> تأكد من أن mvn test يُنتج ملف cucumber.json في مجلد target.

2. التحقق من وجود ملف JSON

بعد تنفيذ الاختبارات، تأكد من وجود الملف:

`bash

ls target/cucumber.json

3. إعداد صحيح لـ @CucumberOptions

`java

@CucumberOptions(

features = "src/test/resources/features",

glue = {"steps"},

plugin = {"pretty", "json:target/cucumber.json"},

monochrome = true,

publish = true

)

4. إعداد صحيح لـ pom.xml

`xml

<plugin>

\<groupId\>net.masterthought\</groupId\>

\<artifactId\>maven-cucumber-reporting\</artifactId\>

\<version\>5.7.1\</version\>

\<executions\>

    \<execution\>

        \<id\>execution\</id\>

        \<phase\>verify\</phase\>

        \<goals\>

            \<goal\>generate\</goal\>

        \</goals\>

        \<configuration\>

            \<projectName\>cucumber-gbpf-graphql\</projectName\>

            \<skip\>false\</skip\>

            \<outputDirectory\>${project.build.directory}\</outputDirectory\>

            \<inputDirectory\>${project.build.directory}\</inputDirectory\>

            \<jsonFiles\>

                \<param\>/\*.json\</param\>

            \</jsonFiles\>

            \<checkBuildResult\>false\</checkBuildResult\>

        \</configuration\>

    \</execution\>

\</executions\>

</plugin>

`

🧪 اختبار يدوي (اختياري)

`java

File reportOutputDirectory = new File("target");

List<String> jsonFiles = Arrays.asList("target/cucumber.json");

Configuration config = new Configuration(reportOutputDirectory, "اسم المشروع");

ReportBuilder reportBuilder = new ReportBuilder(jsonFiles, config);

reportBuilder.generateReports();

`

🧠 ملاحظات إضافية

- تأكد من أن ملفات .feature موجودة وتُنفذ فعليًا

- تحقق من أن ملفات الاختبار تحتوي على @RunWith(Cucumber.class) أو @Cucumber حسب نوع JUnit

- استخدم mvn clean test verify كأمر موحد لضمان الترتيب الصحيح

\> 💬 إذا استمرت المشكلة، راجع سجل التنفيذ (target/surefire-reports) أو فعّل debug في Maven للحصول على تفاصيل أعمق.

Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • User mentioned (1): @CucumberOptions
  • User mentioned (0): @CucumberOptions
  • User mentioned (0): @Cucumber
  • No latin characters (0.5):
  • Low reputation (1):
Posted by: المارد الرقمي