小编Hop*_*rka的帖子

Powershell Core + Pester - 将测试与 src 分离

问题:

将函数导入到不在同一目录中的测试的最佳方法是什么?

例子

 src
       Get-Emoji.ps1
 test
       Get-Emoji.Tests.ps1
Run Code Online (Sandbox Code Playgroud)

因b4

  • Pester 文档[1] 建议将测试文件放置在与其测试的代码相同的目录中。没有提供替代方案的示例。
  • Pester 文档[2] 建议使用点源来导入文件。仅包含同一目录中的示例
  • 从 src 中进行测试是否是一种好的做法,将在其他地方讨论
  • 使用 Powershell Core 在不同操作系统文件系统上提供跨平台支持(正斜杠与反斜杠)

[1]文件放置和命名约定

Pester 认为所有名为 .Tests.ps1 的文件都是测试文件。这是几乎所有项目都使用的默认命名约定。

测试文件放置在与其测试的代码相同的目录中。每个文件都作为它测试的函数被调用。这意味着对于 Get-Emoji 函数,我们会将 Get-Emoji.Tests.ps1 和 Get-Emoji.ps1 放在同一目录中。将测试引用到 Pester 中的函数的最佳方式是什么?

[2]导入测试的函数

Pester 测试放置在 .Tests.ps1 文件中,例如 Get-Emoji.Tests.ps1。代码位于Get-Emoji.ps1中。

为了使测试代码可供测试,我们需要导入代码文件。这是通过将文件点源到当前范围来完成的,如下所示:

实施例1

# at the top of Get-Emoji.Tests.ps1
BeforeAll { 
    . $PSScriptRoot/Get-Emoji.ps1
}
Run Code Online (Sandbox Code Playgroud)

实施例2

# at the top of Get-Emoji.Tests.ps1
BeforeAll { 
    . $PSCommandPath.Replace('.Tests.ps1','.ps1')
}
Run Code Online (Sandbox Code Playgroud)

powershell unit-testing pester powershell-core

5
推荐指数
1
解决办法
688
查看次数

Playwright URL 配置 - 多个应用程序和不同基本 URL 的环境变量

为项目配置和使用 url 的最佳方法是什么

  • 2x 网络应用程序
  • 3x 环境

...作为示例,我们有这样的情况

水果应用程序

  • 基本网址:
    • dev.fruits.com
    • test.fruits.com
    • prod.fruits.com
  • 端点:
    • /香蕉/
    • /猕猴桃/
    • /苹果/

色彩应用程序

  • 基本网址:
    • dev.colors.com
    • test.colors.com
    • prod.colors.com
  • 端点:
    • /红色的/
    • /蓝色的/
    • /绿色的/

...和这样的测试


    test('Navigate to fruits/banana', async () => {
      await page.goto('https://https://dev.fruits.com/banana/');
      ...
    });
     
    test('Navigate to colors/red', async () => {
      await page.goto('https://https://dev.colors.com/red/');
      ...
    });

Run Code Online (Sandbox Code Playgroud)

...我想去的地方

  1. 将 dev.fruits.com 和 dev.colors.com 替换为 baseurl 变量
  2. “dev”部分应该是动态的,具体取决于我运行测试的环境

automated-tests base-url playwright

4
推荐指数
1
解决办法
7774
查看次数