I am looking for advice on how to use Lux and Nit. I have read the chm docs and the two posts to Joy of Setups. I have also reviewed the sample projects in the source and looked at the lux related targets in the source code. I have tried several approaches to using Lux without success, so I created a very simple MSI project which builds successfully.
I then added the code from the lux samples and got the project to successfully build. When I add a DependsOnTarget='Test' to my Target which runs AfterTarget="Build" then it calls _ScanForUnitTests and then _GenerateTestConsumer and calls Lux. But when Nix is then launched it fails as follows: Target "Test" in file "C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\Lux.targets" from project "C:\Development\Installs\Research\MsiTestProperties\MsiTestProperties.wixproj" (target "RpdSummary" depends on it): Task "Nit" Task Parameter:TestPackages=C:\Development\Installs\Research\MsiTestProperties\bin\Release\MsiTestProperties.msi Task Parameter:ToolPath=C:\Program Files (x86)\WiX Toolset v3.9\bin\ Command: C:\Program Files (x86)\WiX Toolset v3.9\bin\Nit.exe C:\Development\Installs\Research\MsiTestProperties\bin\Release\MsiTestProperties.msi Windows Installer XML Toolset Unit Test Runner version 3.9.1006.0 Copyright (c) Outercurve Foundation. All rights reserved. nit.exe(0,0): error NIT0001: SQL query syntax invalid or unsupported. Exception Type: Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException Stack Trace: at Microsoft.Deployment.WindowsInstaller.Database.OpenView(String sqlFormat, Object[] args) at Microsoft.Deployment.WindowsInstaller.Database.ExecuteStringQuery(String sql, Record record) at Microsoft.Deployment.WindowsInstaller.Database.ExecuteStringQuery(String sqlFormat, Object[] args) at Microsoft.Tools.WindowsInstallerXml.Lux.TestRunner.RunTests(Int32& passes, Int32& failures) at Microsoft.Tools.WindowsInstallerXml.Lux.Nit.Run(String[] args) The command exited with code 1. Done executing task "Nit" -- FAILED. Done building target "Test" in project "MsiTestProperties.wixproj" -- FAILED. Here is my CustomAction.wxs file (mostly lifted from the wix source): <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:lux="http://schemas.microsoft.com/wix/2009/Lux" > <Fragment> <CustomAction Id="TestCustomActionSimple" Property="SIMPLE" Value="[INSTALLFOLDER]" /> <CustomAction Id="TestCustomActionSimpleNumber" Property="SIMPLENUMBER" Value="1" /> <CustomAction Id="TestCustomActionMultiValue" Property="MULTIVALUE" Value="1*[INSTALLFOLDER]*WIXEAST" /> <CustomAction Id="TestCustomActionNameValuePairs" Property="NAMEVALUEPAIRS" Value="InstallationRoot#[INSTALLFOLDER]#Developers#WIXEAST" /> <InstallExecuteSequence> <Custom Action="TestCustomActionSimple" After="InstallFiles" /> <Custom Action="TestCustomActionSimpleNumber" After="TestCustomActionSimple" /> <Custom Action="TestCustomActionMultiValue" After="TestCustomActionSimpleNumber" /> <Custom Action="TestCustomActionNameValuePairs" Before="InstallFinalize" /> </InstallExecuteSequence> </Fragment> <Fragment> <lux:UnitTest CustomAction="TestCustomActionSimple" Property="SIMPLE" Value="[INSTALLFOLDER]" Operator="equal" /> <lux:UnitTest CustomAction="TestCustomActionSimpleNumber" Property="SIMPLENUMBER" Value="1" /> <lux:Mutation Id="SimulateDiskFull"> <lux:UnitTest Id="DiskFullSimple" CustomAction="TestCustomActionSimple" Property="SIMPLE" Value="[INSTALLFOLDER]" Operator="equal" /> <lux:UnitTest Id="DiskFullSimpleNumber" CustomAction="TestCustomActionSimpleNumber" Property="SIMPLENUMBER" Value="1" /> </lux:Mutation> <lux:Mutation Id="SimulateUpgrade"> <lux:UnitTest CustomAction="TestCustomActionMultiValue" Property="MULTIVALUE" ValueSeparator="*"> <lux:Condition>VersionNT</lux:Condition> <lux:UnitTest Index="0" Value="INTENTIONAL_FAILURE" /> <lux:UnitTest Index="1" Value="[INSTALLFOLDER]"> <lux:Condition>NOT Installed</lux:Condition> </lux:UnitTest> <lux:UnitTest Index="2" Value="WIXEAST" /> </lux:UnitTest> </lux:Mutation> <lux:Mutation Id="SimulateUpgradeFailure"> <lux:UnitTest CustomAction="TestCustomActionNameValuePairs" Property="NAMEVALUEPAIRS" NameValueSeparator="#"> <lux:UnitTest Index="InstallationRoot" Value="[INSTALLFOLDER]" /> <lux:UnitTest Index="Developers" Operator="caseInsensitiveNotEqual" Value="WIXWEST" /> </lux:UnitTest> </lux:Mutation> </Fragment> </Wix> And my 'product' file includes this: <CustomActionRef Id="TestCustomActionSimple" /> <CustomActionRef Id="TestCustomActionMultiValue" /> <CustomActionRef Id="TestCustomActionNameValuePairs" /> When I added the Lux 'Test' target, I was expecting it to generate a msi with the name $(OutputName)_test.msi, but it builds the lux package with the same name as the project's msi package. So I though maybe I needed two wixproj files with different OutputNames, but that results in the same Nit error. So I am missing something conceptually. Any advice on sorting this out is appreciated. Thanks Phill -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Using-Lux-and-Nit-tp7597183.html Sent from the wix-users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users