【问题标题】:Spec file not getting identified by Protractor cucumber framework量角器黄瓜框架未识别规范文件
【发布时间】:2019-11-23 01:52:19
【问题描述】:

我的测试配置文件找不到规范文件。我已经创建了规范文件。以前我也运行过这些脚本.. 但是为了更多的框架更新,我更新了文件的路径.. 这会导致规范文件错误,即使我给出了完整路径,它也无法找到规范文件。

规格文件

var utilityInit,page2//browser2;
page1=new facebook(firstBrowser);
module.exports=function(){
    this.Given(/^Open the browser and Load the URL$/,async function(){
        await firstBrowser.get(properties.get("url1"));
        browser.logger.info("Title of the window is :"+await browser.getTitle());
        //screenshots.takesScreenshot("filename");
    });
    
    this.When(/^User entered the text in the search box$/,async function(){
        firstBrowser.sleep(3000);
        await page1.email().sendKeys(testData.Login.CM[0].Username);
        browser.sleep(3000);
        await page1.password().sendKeys(testData.Login.CM[0].Password);
    });
    
    this.Then(/^click on login button$/,async function(){
        browser.sleep(3000);
        await facebook.submit().click();
    });
    
    this.Then(/^User tried to open in new browser instance$/,async function(){
        browser2=await openNewBrowser.newBrowserInit(firstBrowser);
        utilityInit=new utility(browser2);
        utilityInit.ignoreSync(properties.get("url2"));
        browser2.manage().window().maximize();
        console.log(await utilityInit.title()+" title");
        browser2.sleep(5000);
    });
    
    this.When(/^User entered the text in the email field$/,async function(){
        page2=new facebook(browser2);
        console.log(await page2.title()+" browser2");
        await page2.search().sendKeys("testing");
        browser2.sleep(3000);
        page1=new facebook(firstBrowser);
        console.log(await page1.title()+" browser1")
        await page1.email().sendKeys(testData.Login.CM[0].Username);
        screenshots.takeScreenshot("newScreenshot");
        firstBrowser.sleep(5000);
    })
}

配置文件

const log4js = require('log4js');
var fs=require('fs');
global.screenshots = require('protractor-take-screenshots-on-demand');
global.browser2;
var propertiesReader=require('properties-reader');

exports.config = {

//seleniumAddress: 'http://localhost:4444/wd/hub',
directConnect:true,

framework: 'custom',
// path relative to the current config file
frameworkPath: require.resolve('protractor-cucumber-framework'),
capabilities: {
    'browserName': 'chrome',
    metadata: {
        browser: {
            name: 'chrome',
            version: '79'
        },
        device: 'MacBook Pro 15',
        platform: {
            name: 'OSX',
            version: '10.12.6'
        },
       disableLog:true,
       durationInMS:true,
       openReportInBrowser:true
    }
},
ignoreUncaughtExceptions:false,
// Spec patterns are relative to this directory.
specs: [
    '../Proc/src/test/java/com/proc/features/test.feature'
],

beforeLaunch:function(){
    if (fs.existsSync('./logs/ExecutionLog.log')) {
        fs.unlink('./logs/ExecutionLog.log')
    }
    log4js.configure({
        appenders: {
            out: { type: 'console' }, 
            info:{ type: 'dateFile', filename: '../Reports/logs/info', "pattern":"-dd.log",alwaysIncludePattern:false},
            "console" : {
                "type": "console",
                "category": "console"
            },
            "file" : {
                "category": "test-file-appender",
                "type": "file",
                "filename": "../Reports/logs/log_file.log",
                "maxLogSize": 10240,
               // "backups": 3,
              //  "pattern": "%d{dd/MM hh:mm} %-5p %m"
            }
          },
         categories: {
               "info" :{"appenders": ["console"], "level": "info"},
               "default" :{"appenders": ["console", "file"], "level": "DEBUG"},
              //"file" : {"appenders": ["file"], "level": "DEBUG"}
        }
    });
},
cucumberOpts: {
    require:['../src/test/resources/com.proc.utility/timeOutConfig.js','../src/test/java/com/proc/TestCases/spec.js'],
    tags: false,
    profile: false,
    format:'json:../Reports/jsonResult/results.json',
    'no-source': true
},
 onPrepare: function () {
     const logDefault = log4js.getLogger('default');
     const logInfo=log4js.getLogger('info');
     
     screenshots.browserNameJoiner = ' - '; //this is the default
     //folder of screenshot
     screenshots.screenShotDirectory = '../Screenshots';
     global.openNewBrowser=require("../src/test/resources/com.proc.utility/newBrowserinstance.js")
     global.testData=require("../TestData/testData.json");
     browser.logger = log4js.getLogger('protractorLog4js');
     global.firstBrowser=browser;
     global.properties=propertiesReader("../TestData/propertyConfig.properties");
     browser.waitForAngularEnabled(false);
     browser.manage().window().maximize();
     global.facebook=require("../src/test/java/com/proc/pages/fbPageObjects.js");
     global.utility=require("../src/test/resources/com.proc.utility/testFile.js");
  },
  plugins: [{
      package: '../Proc/node_modules/protractor-multiple-cucumber-html-reporter-plugin',
      options:{
          // read the options part for more options
          automaticallyGenerateReport: true,
          removeExistingJsonReportFile: true,
          reportPath:"../Reports/HtmlReports",
          reportName:"test.html"
      },
      customData: {
            title: 'Run info',
            data: [
                {label: 'Project', value: 'Framework Setup'},
                {label: 'Release', value: '1.2.3'},
                {label: 'Cycle', value: 'Test Cycle'}
            ]
        },
  }]
};

日志

H:\workspace\Proc\Configuration>protractor testConfig.js
[23:38:00] I/launcher - Running 1 instances of WebDriver
[23:38:00] I/direct - Using ChromeDriver directly...

DevTools listening on ws://127.0.0.1:51680/devtools/browser/e9688f83-2047-4535-91ba-bf2100fe6016


0 scenarios
0 steps
0m00.000s

有人可以帮我解决这个问题..这与我的项目框架POC有关..

【问题讨论】:

    标签: javascript selenium-webdriver protractor cucumberjs


    【解决方案1】:

    为了澄清我在这里看到的其他一些 cmets,您不必提供确切的文件路径。你可以这样做

    specs: [
    '../Proc/src/test/java/com/proc/features/']
    

    这条路径对我来说看起来不正确 ^ 你确定那是正确的路径吗?你也有一个javascript项目但是你的文件结构是java结构src/test/java为什么?

    【讨论】:

    • 是的 Reymond,我想尝试一下 maven 结构,但它失败了。如果我们没有给出确切的文件路径,那么它如何运行功能文件?
    • @SatishRongala 好的,我建议不要在 javascript 项目中使用 Java 结构,因为这是不好的做法。要回答您的问题,这是一个 glob 模式gulpjs.com/docs/en/getting-started/explaining-globs 是一个小解释。想象一下,您有 100 个功能文件!您不想列出每个文件,而是传入一个 glob,所有与该模式匹配的文件都将包含在内
    • okk,还有一件事是“../../”相对路径样式根本不适合我.. 每次我给出完整路径时,只有它适用于 npm模块..我该如何克服这一点
    • @SatishRongala 没有看到您的完整路径结构,我无法给出答案。你能分享一下回购吗?
    • github.com/Satish152/Proc-UI ...我将我的文件夹结构简单地更新为 Visual Studio 代码格式.. 你也可以看看我的代码,因为它无法找到规范文件,即使它存在
    【解决方案2】:

    这是使我的框架正常工作的一件简单的事情.. npm install cucumber@1.3.3 --save-dev

    【讨论】:

      【解决方案3】:

      这是因为Spec 路径

      specs: [
          '../Proc/src/test/java/com/proc/features/test.feature' //Provide a complete path to your test file along with file extension(.ts)
       ],
      

      希望对你有帮助

      【讨论】:

      • 但是在设置框架时,我们需要提供正确的相对路径.. 这样它将是安全路径,并且它从直接项目文件夹中获取文件
      • 相对路径没问题。提供完整的文件以及文件扩展名(.ts 或 .js)
      • 我给出了带有文件扩展名的正确路径。我给出了要执行的功能文件路径
      • 太棒了。你能用你的实现来更新这个问题吗?
      • 实施是什么意思??
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-27
      • 2018-07-25
      • 1970-01-01
      相关资源
      最近更新 更多