我正在powershell
本地和 TravisCI 上玩并运行我的测试。
模块清单
RequiredModules = @('ClipboardText')
特拉维斯配置
目前我安装powershell
并pester
在运行我的测试之前
addons:
apt:
sources:
- sourceline: deb [arch=amd64] https://packages.microsoft.com/ubuntu/14.04/prod trusty main
key_url: https://packages.microsoft.com/keys/microsoft.asc
packages:
- powershell
- xclip
before_script:
- pwsh -Command 'Install-Module -Name Pester -Force -Scope CurrentUser'
script:
- make test
生成文件
test:
pwsh -Command 'Get-childItem -Recurse *.test.ps1 | foreach { Invoke-Pester -EnableExit $$_ }'
特拉维斯构建
构建抛出错误:
Import-Module : The required module 'ClipboardText' is not loaded.
Load the module or remove the module from 'RequiredModules' in the file '/home/travis/build/edouard-lopez/lesspass-powershell/lesspass.psd1'.
At /home/travis/build/edouard-lopez/lesspass-powershell/Clipboard.test.ps1:1 char:1
+ Import-Module $PSScriptRoot/lesspass.psd1 -Force # force code to be ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ResourceUnavailable: (/home/travis/bu...l/lesspass.psd1:String) [Import-Module], MissingMemberException
+ FullyQualifiedErrorId : Modules_InvalidManifest,Microsoft.PowerShell.Commands.ImportModuleCommand
问题
我认为声明RequiredModules
会安装,ClipboardText
因此可以正确执行我的测试。如果我在本地手动安装模块ClipboardText
,我的测试工作正常,但是在 CI 和模块的未来分发上做正确的事情吗?