Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes UTF-16 encoded .addin manifests fail upon loading (#70) #71

Open
wants to merge 1 commit into
base: Revit2017
Choose a base branch
from

Conversation

spitznagel
Copy link

RevitTestFramework fails to Run If an Addin manifest is encoded in UTF-16. When run from the console using RevitTestFrameworkConsole.exe, the error message is "There is no Unicode byte order mark. Cannot switch to Unicode." There is no error message shown in the GUI, but it still fails.

We can solve this problem by using StreamReader to automatically detect the encoding of the .addin manifest. Once loaded, we can pass the StreamReader directly to XmlDocument. This works for both UTF-8 and UTF-16 manifests.

"RevitTestFramework fails to Run If an Addin manifest is encoded in UTF-16. When run from the console using RevitTestFrameworkConsole.exe, the error message is "There is no Unicode byte order mark. Cannot switch to Unicode." There is no error message shown in the GUI."
@spitznagel spitznagel changed the title Added a fix for Issue #70 Added a fix for Issue #70 - UTF-16 encoded .addin manifests fail upon loading Jul 8, 2017
@spitznagel spitznagel changed the title Added a fix for Issue #70 - UTF-16 encoded .addin manifests fail upon loading Fixes UTF-16 encoded .addin manifests fail upon loading (#70) Jul 8, 2017
marchello2000 pushed a commit to upcodes/RevitTestFramework that referenced this pull request Jun 27, 2018
@marchello2000
Copy link
Contributor

Thank you, @spitznagel : this has been incorporated into https://github.com/upcodes/RevitTestFramework

ZiyunShang pushed a commit that referenced this pull request Mar 22, 2019
* Group tests by model with the `GroupByModel` param
* Tests in same fixture with same model path will run with the same model (without reopening the model)
* Additional fixes:
    - Remember the directory for file pickers
    - Automatically set the working/results directory
    - Automatically infer the version of Revit to use from the assembly (based on the RevitAPI linked against)
    - Clean up a bunch of stale variables, update parts to modern C# standards
    - Fix by category grouping to show tests that aren't in a category

* Nuget package definition

* Fix the test runner such that it spits out an error when a text model is not found

* Various UI improvements:
* Show how many tests pass/fail after a test run
* Auto expand tree with failing tests

* fixup! Merge pull request #4 from marchello2000/mark/failing_tests_indicator

* Clarity improvements:
* Add `ERROR` and `WARNING` to appropriate WriteLines to clearly highlight when
  something goes wrong
* Compact the UI a bit and give more room to console logger
* Clearly state how many tests pass/fail/skip in the last run in the console log for the gui

* Nuget version update

* Add ability to marshal console logs from unit test

* Spit out information to console as the test complete

* Add ability to clear in the console box

* Update nuspec version and readme

* Add missing empty.rfa file to the nuget package

* Porting fix for #71

* Properly fail tests whose model isn't found

* Fix null deref in console mode

* Add ability to specify wildcard for a model file name
The way it's implemented is as follows:
1. During assembly load, check if a test has a wildcard for the model, e.g.
```
[TestModel(@"C:\RevitModels\test_models\*.rvt")]
```
or
```
[TestModel(@"C:\RevitModels\test_models\*.rfa")]
```

2. Enumerate all files that match the wildcard in the specified directory
3. For each model file found, create a separate entry for the current test with this model

* Add proper error handling for wildcard models
Add error when no model files are found with a given wildcard

* Initialize output redirector earlier to catch command line arguments

* Add a timeout to Revit termination
In case Revit doesn't terminate within a timeframe (45s) it is force terminated
after test run is complete (only works for -continuous right now)

* Update README.md

* Automated build with AppVeyor
* Use Nugets for Revit dependencies (e.g. RevitAPI.dll and RevitAddingUtility.dll)
* Remove platform architecture warnings
* Remove some unused variables and other warnings from build
* Remove double definition of NUnitResultTypes
* Add ability to override Revit installation enumeration during UnitTests for CI machines with Revit
* Update Nuget package and add AppVeyor.yaml file

* Fix automatic nuget publishing

* Add instructions on how to run RTF in CI

* Pull request fixups
Revert to ReflectionOnlyLoadFrom for assembly loader because Dynamo relies on it

* PR Feedback:
* Ensure all new methods/classes have XML docs
* Ensure all memebers have access modifiers

* Update readme

* PR Feedback: do not distribute nunit/prism/etc libraries
Using Costura to merge the needed binaries into the RTF assemblies
such that they don't need to be redistributed without correct nuget usage

* Adding license info for used dlls
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants