如何获取 NUnit nunit-console.exe 的路径
我正在尝试制作一个 Nant 脚本,到目前为止进展顺利,但我希望不要对文件位置进行硬编码。这很好,直到我必须执行 nunit-console.exe,但我似乎无法执行该操作。到目前为止我发现与此相关的是:
<target name="test">
<property name="windows-path" value="${string::to-lower(environment::get-variable('PATH'))}"/>
<property name="nunit-in-path" value="${string::contains(windows-path, 'nunit')}"/>
<echo message="${nunit-in-path}"/>
</target>
但是每次都会失败,所以我想知道几件事:
string::to-lower(environment::get-variable('PATH') 是什么意思? )
实际上呢?- 我该如何做到这一点,以便无论您使用什么版本的 Windows 或 nunit-console.exe 在哪里,都不会中断? (例如,我的 PC 上的 Program Files(x86) 中有 NUnit,但笔记本电脑上的 Program Files 中有 NUnit)
I'm trying to make a Nant script, it has been going well so far, but I wish to not hard code file locations. This is well and good until I have to execute nunit-console.exe which I can't seem to do. What I have found so far relating to this is:
<target name="test">
<property name="windows-path" value="${string::to-lower(environment::get-variable('PATH'))}"/>
<property name="nunit-in-path" value="${string::contains(windows-path, 'nunit')}"/>
<echo message="${nunit-in-path}"/>
</target>
But this fails every time, so I would like to know couple of things:
- What does
string::to-lower(environment::get-variable('PATH'))
actually do? - How do I make it so this doesn't break no matter what version of windows you use or where the nunit-console.exe is?
(For example I have NUnit in Program Files(x86) on my PC but in Program Files on my laptop)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
echo %PATH%
,在 powershell 中,您可以键入$env:PATH
。因此,假设 nunit-console.exe 位于 c:\Program Files\Nunit\bin
要永久修改路径,请右键单击我的电脑,转到高级 -->环境变量 -
或者-
要在运行此 nant 脚本之前动态执行此操作,请在批处理脚本中运行:
set PATH="%PATH%;c:\Program Files\Nunit\bin"
或在 powershell 中,运行:
$env:PATH += ';c:\program files\nunit\bin'
您还可以将 c:\Program Files 替换为相关的环境变量...在 Powershell 中认为它是
$env:ProgramFiles
和${env:ProgramFiles(x86)}
...我认为它可能是命令中的%PROGRAMFILES%
提示但我可能错了。但是您可以输入set
以在命令提示符中获取所有变量的列表。在系统路径中设置 nunit 可能更像是您想要做的事情,因为该脚本无需修改即可在 PATH 变量中包含 nunit 的任何计算机上运行。
echo %PATH%
, in powershell you can type$env:PATH
.So, assuming nunit-console.exe is located in c:\Program Files\Nunit\bin
To modify your path permanently, right click on my computer, go to advanced --> environment variables
-OR-
To do it dynamically just before you run this nant script, in a batch script, run:
set PATH="%PATH%;c:\Program Files\Nunit\bin"
or in powershell, run:
$env:PATH += ';c:\program files\nunit\bin'
You can also replace c:\Program Files with the relevant environment variable... in Powershell I think it's
$env:ProgramFiles
and${env:ProgramFiles(x86)}
... I think it might be%PROGRAMFILES%
in command prompt but I'm probably wrong. But you can typeset
to get a list of all variables in the command prompt.Setting nunit up in your system path is probably more like what you're trying to do since the script would work without modification on any machine containing nunit in the PATH variable.
好吧,我现在似乎已经明白了,这就是我的脚本现在的样子:
我接受了建议并将 Nunit 文件填充到工作目录中,然后使用合并和 get-current-directory() 创建完整路径以获得其确切的路径地点。
如果您发现此脚本有任何问题或需要改进的地方,请告诉我。
感谢卡拉维拉解释了我所困惑的事情(不知道我能做到这一点),并感谢蒂姆·罗宾逊和马克·辛普森提供的解决方案。
Ok I seem to have got it now, this is how my script looks now:
I took the advice and stuffed the Nunit file into workingdir and then create a complete path by using the combine and get-current-directory() to get its exact location.
If you see anything wrong with this script, or something that could be improved please let me know.
And thanks to calavera for explaining what I was confused about (didn't know I could do that) and thanks to Tim Robinson and Mark Simpson for the solution.