簡體   English   中英

在本地主機上針對靜態Web應用運行內部功能測試

[英]Run intern functional tests against static web app on localhost

我有一個靜態網絡應用程序。 HTML,JS(requirejs模塊)和一些CSS。 當前,“ serverUrl”是通過屬性模塊設置的,我可以“請求”並使用其中的值:

define({
    serverUrl: 'https://some.api/path/'
})

我具有Intern設置,可以在瀏覽器中使用src / index.html作為入口點運行功能測試。

return this.remote
    .get(require.toUrl('src/index.html'))

給定serverUrl在屬性文件中進行了硬編碼,我試圖找到一種對Web應用程序運行測試的方法,其中serverUrl指向localhost:1234/someFakeServer以便可以測試錯誤情況等。

我已經拖網了,但是找不到任何人在做與我相似的遠程操作,這讓我覺得我做的事情顯然是錯誤的。 有一些使用配置模塊的NODE應用程序解決方案,但是由於我從來沒有“啟動”我的Web應用程序-它只是文件,因此這些文件對我不起作用。

我已經考慮過一些解決方案,但無法解決如何實現:

  • 實習生正在代理:9000上的文件,因此,如果我能以某種方式用另一個指向localhost的屬性文件來“構建”一個應用程序,那一切都很好。 但是我不知道該怎么做-我看過webpack和類似的東西,但是他們似乎並沒有按照我的意願去做。
  • 我看過Interns的“ Setup”配置項,該配置項允許在測試開始之前運行一個功能-所以我考慮過修改那里的屬性文件,但是似乎太過分了,不確定我怎么把它放回去...

假設Intern可以訪問屬性文件,則只需讓Intern加載屬性文件並將服務器URL從中拉出即可。 如果您有多個潛在的屬性文件,則可以在Intern配置中設置要使用的屬性文件,或將其作為自定義命令行變量傳遞(該變量將用於在Intern配置中設置屬性)。 測試模塊可以從Intern的配置中獲取屬性文件的名稱,然后加載相關文件。 它可能看起來像這樣(未經測試):

// intern config
define({
    // ...
    propertiesFile: 'whatever',
})

// test file
define([ 'intern', ... ], function (intern, ...) {
    registerSuite({
        // ...
        'a test': function () {
            var did = this.async();
            var remote = this.remote;
            require([
                intern.config.propertiesFile
            ], dfd.callback(function (props) {
                return remote.get(props.url)
                    .otherStuff
            });
        }
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM